com.sun.tools.xjc.model
Interface TypeUse

All Known Subinterfaces:
CClass, CNonElement
All Known Implementing Classes:
CArrayInfo, CBuiltinLeafInfo, CClassInfo, CClassRef, CEnumLeafInfo, TypeUseImpl

public interface TypeUse

Information about how another type is referenced.

In practice it is often easier to use CTypeInfo instead of NType, so this interface defines getInfo().

See Also:
TypeUseImpl

Method Summary
 com.sun.codemodel.JExpression createConstant(Outline outline, XmlString lexical)
          Creates a constant for the given lexical value.
 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.
 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.
 

Method Detail

isCollection

boolean isCollection()
If the use can hold multiple values of the specified type.


getAdapterUse

CAdapter getAdapterUse()
If this type use is adapting the type, returns the adapter. Otherwise return null.


getInfo

CNonElement getInfo()
Individual item type.


idUse

ID idUse()
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.


getExpectedMimeType

javax.activation.MimeType getExpectedMimeType()
A TypeUse can have an associated MIME type.


createConstant

com.sun.codemodel.JExpression createConstant(Outline outline,
                                             XmlString lexical)
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.

Returns:
null if the constant cannot be created for this TypeUse (such as when it's a collection)
Throws:
IllegalStateException - if the type isn't bound to a text in XML.