/* * Copyright 2002-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.axis.description; import javax.xml.namespace.QName; import java.io.Serializable; /** * FieldDescs are metadata objects which control the mapping of a given * Java field to/from XML. * * @author Glen Daniels (gdaniels@apache.org) */ public class FieldDesc implements Serializable { /** The name of the Java field in question */ private String fieldName; /** The XML QName this field maps to */ private QName xmlName; /** The XML Type this field maps to/from */ private QName xmlType; /** The Java type of this field */ private Class javaType; /** An indication of whether this should be an element or an attribute */ // Q : should this be a boolean, or just "instanceof ElementDesc", etc. private boolean _isElement = true; /** An indication that minoccurs is zero */ private boolean minOccursIs0 = false; /** * Can't construct the base class directly, must construct either an * ElementDesc or an AttributeDesc. */ protected FieldDesc(boolean isElement) { _isElement = isElement; } /** * Obtain the field name. */ public String getFieldName() { return fieldName; } /** * Set the field name. */ public void setFieldName(String fieldName) { this.fieldName = fieldName; } /** * Obtain the XML QName for this field */ public QName getXmlName() { return xmlName; } /** * Set the XML QName for this field */ public void setXmlName(QName xmlName) { this.xmlName = xmlName; } public Class getJavaType() { return javaType; } public void setJavaType(Class javaType) { this.javaType = javaType; } /** * Returns the XML type (e.g. xsd:string) for this field */ public QName getXmlType() { return xmlType; } /** * Returns the XML type (e.g. xsd:string) for this field */ public void setXmlType(QName xmlType) { this.xmlType = xmlType; } /** * Check if this is an element or an attribute. * * @return true if this is an ElementDesc, or false if an AttributeDesc */ public boolean isElement() { return _isElement; } public boolean isIndexed() { return false; } /** * Check if this field can be omitted. */ public boolean isMinOccursZero() { return minOccursIs0; } /** * * * @param minOccursIs0 * @deprecated this functionality, which is only relevant to ElementDescs, * now lives in ElementDesc and is more flexible (you can set * minOccurs and maxOccurs as you please) */ public void setMinOccursIs0(boolean minOccursIs0) { this.minOccursIs0 = minOccursIs0; } }