1 /*
   2  * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.xml.ws;
  27 
  28 
  29 /**
  30  * A WebServiceFeature is used to represent a feature that can be
  31  * enabled or disabled for a web service.
  32  * <p>
  33  * The JAX-WS specification will define some standard features and
  34  * JAX-WS implementors are free to define additional features if
  35  * necessary.  Vendor specific features may not be portable so
  36  * caution should be used when using them. Each Feature definition
  37  * MUST define a <code>public static final String ID</code>
  38  * that can be used in the Feature annotation to refer
  39  * to the feature. This ID MUST be unique across all features
  40  * of all vendors.  When defining a vendor specific feature ID,
  41  * use a vendor specific namespace in the ID string.
  42  *
  43  * @see javax.xml.ws.RespectBindingFeature
  44  * @see javax.xml.ws.soap.AddressingFeature
  45  * @see javax.xml.ws.soap.MTOMFeature
  46  *
  47  * @since 1.6, JAX-WS 2.1
  48  */
  49 public abstract class WebServiceFeature {
  50    /**
  51     * Each Feature definition MUST define a public static final
  52     * String ID that can be used in the Feature annotation to refer
  53     * to the feature.
  54     */
  55    // public static final String ID = "some unique feature Identifier";
  56 
  57    /**
  58     * Get the unique identifier for this WebServiceFeature.
  59     *
  60     * @return the unique identifier for this feature.
  61     */
  62    public abstract String getID();
  63 
  64    /**
  65     * Specifies if the feature is enabled or disabled
  66     */
  67    protected boolean enabled = false;
  68 
  69 
  70    protected WebServiceFeature(){}
  71 
  72 
  73    /**
  74     * Returns <code>true</code> if this feature is enabled.
  75     *
  76     * @return <code>true</code> if and only if the feature is enabled .
  77     */
  78    public boolean isEnabled() {
  79        return enabled;
  80    }
  81 }