com.sun.tools.xjc.model
Class TypeUseImpl

java.lang.Object
  extended by com.sun.tools.xjc.model.TypeUseImpl
All Implemented Interfaces:
TypeUse

final class TypeUseImpl
extends Object
implements TypeUse

General-purpose TypeUse implementation.


Constructor Summary
TypeUseImpl(CNonElement itemType, boolean collection, ID id, javax.activation.MimeType expectedMimeType, CAdapter adapter)
           
 
Method Summary
 com.sun.codemodel.JExpression createConstant(Outline outline, XmlString lexical)
          Creates a constant for the given lexical value.
 boolean equals(Object o)
           
 CAdapter getAdapterUse()
          If this type use is adapting the type, returns the adapter.
 javax.activation.MimeType getExpectedMimeType()
          A TypeUse can have an associated MIME type.
 CNonElement getInfo()
          Individual item type.
 int hashCode()
           
 ID idUse()
          Whether the referenced type (individual item type in case of collection) is ID/IDREF.
 boolean isCollection()
          If the use can hold multiple values of the specified type.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeUseImpl

public TypeUseImpl(CNonElement itemType,
                   boolean collection,
                   ID id,
                   javax.activation.MimeType expectedMimeType,
                   CAdapter adapter)
Method Detail

isCollection

public boolean isCollection()
Description copied from interface: TypeUse
If the use can hold multiple values of the specified type.

Specified by:
isCollection in interface TypeUse

getInfo

public CNonElement getInfo()
Description copied from interface: TypeUse
Individual item type.

Specified by:
getInfo in interface TypeUse

getAdapterUse

public CAdapter getAdapterUse()
Description copied from interface: TypeUse
If this type use is adapting the type, returns the adapter. Otherwise return null.

Specified by:
getAdapterUse in interface TypeUse

idUse

public ID idUse()
Description copied from interface: TypeUse
Whether the referenced type (individual item type in case of collection) is ID/IDREF.

ID is a property of a relationship. When a bean Foo has an ID property called 'bar' whose type is String, Foo isn't an ID, String isn't an ID, but this relationship is an ID (in the sense that Foo uses this String as an ID.)

The same thing can be said with IDREF. When Foo refers to Bar by means of IDREF, neither Foo nor Bar is IDREF.

That's why we have this method in TypeUse.

Specified by:
idUse in interface TypeUse

getExpectedMimeType

public javax.activation.MimeType getExpectedMimeType()
Description copied from interface: TypeUse
A TypeUse can have an associated MIME type.

Specified by:
getExpectedMimeType in interface TypeUse

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

createConstant

public com.sun.codemodel.JExpression createConstant(Outline outline,
                                                    XmlString lexical)
Description copied from interface: TypeUse
Creates a constant for the given lexical value.

For example, to create a constant 1 for xs:int, you'd do:

 CBuiltinLeafInfo.INT.createConstant( codeModel, "1", null );
 

This method is invoked at the backend as a part of the code generation process.

Specified by:
createConstant in interface TypeUse
Returns:
null if the constant cannot be created for this TypeUse (such as when it's a collection)