/** * Redistribution and use of this software and associated documentation * ("Software"), with or without modification, are permitted provided * that the following conditions are met: * * 1. Redistributions of source code must retain copyright * statements and notices. Redistributions must also contain a * copy of this document. * * 2. Redistributions in binary form must reproduce the * above copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * * 3. The name "Exolab" must not be used to endorse or promote * products derived from this Software without prior written * permission of Intalio, Inc. For written permission, * please contact info@exolab.org. * * 4. Products derived from this Software may not be called "Exolab" * nor may "Exolab" appear in their names without prior written * permission of Intalio, Inc. Exolab is a registered * trademark of Intalio, Inc. * * 5. Due credit should be given to the Exolab Project * (http://www.exolab.org/). * * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * Copyright 1999-2000 (C) Intalio Inc. All Rights Reserved. * * $Id$ */ package org.exolab.castor.xml.schema.simpletypes.factory; import java.util.Vector; import java.io.PrintWriter; import org.exolab.castor.xml.schema.SimpleType; /** * Stores information about an xml built in type. * */ public class Type { /** * The name of the built in type */ private String name = null; /** * The code of the built in type * (name of the corresponding field in SimpleTypesFactory) */ private String code = null; /** * The name of the base type (null for primitive types) */ private String base = null; /** * The name of the implementing class * (in org.exolab.castor.xml.schema.simpletypes) */ private String impl = null; /** * The name of the derivation method. */ private String derivedBy = null; /** * The class used to represent this type */ private Class implClass= null; /** * The instance representing this type */ private SimpleType simpleType= null; /** * This type's properties ("facet" like) * Vector<TypeProperty> */ private Vector facet= new Vector(15); public String getName () { return name; } public String getCode () { return code; } public String getBase () { return base; } public String getImpl () { return impl; } public String getDerivedBy () { return derivedBy; } public Vector getFacet () { return facet;} public Class getImplClass () { return implClass; } public SimpleType getSimpleType() { return simpleType;} public void setName (String name) { this.name = name; } public void setCode (String code) { this.code = code; } public void setBase (String base) { this.base = base; } public void setDerivedBy (String derivedBy) { this.derivedBy = derivedBy; } public void setSimpleType(SimpleType simpleType) { this.simpleType = simpleType;} /** * Sets the implementing class name * and tries to create the corresponding class in the package * org.exolab.castor.xml.schema.simpletypes */ public void setImpl (String impl) { this.impl= impl; try { String fullName= "org.exolab.castor.xml.schema.simpletypes." + impl; implClass= Class.forName(fullName); } catch (Exception e) { implClass= null; } } /** * Prints this instance's content */ public void Print(PrintWriter output) { output.println("name: " + name + " code: " + code + " base: " + base + " impl: " + impl + " derivedBy: " + derivedBy); output.println("Facets count: " + facet.size()); for( int index= 0; index < facet.size(); index++) { ((TypeProperty)(facet.elementAt(index))).Print(output); } output.println(); } /** * To generate a {@link String} representing this class instance. * @see java.lang.Object#toString() */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append("name: ").append(name); sb.append(" code: ").append(code); sb.append(" base: ").append(base); sb.append(" impl: ").append(impl); sb.append(" derivedBy: ").append(derivedBy); sb.append('\n'); sb.append("Facets count: ").append(facet.size()); sb.append('\n'); for (int index = 0; index < facet.size(); index++) { TypeProperty tp = (TypeProperty) (facet.elementAt(index)); sb.append(tp.toString()); } sb.append('\n'); return sb.toString(); } }