com.sun.tools.xjc.model

Interface TypeUse

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
JExpressioncreateConstant(Outline outline, XmlString lexical)
Creates a constant for the given lexical value.
CAdaptergetAdapterUse()
If this type use is adapting the type, returns the adapter.
MimeTypegetExpectedMimeType()
A TypeUse can have an associated MIME type.
CNonElementgetInfo()
Individual item type.
IDidUse()
Whether the referenced type (individual item type in case of collection) is ID/IDREF.
booleanisCollection()
If the use can hold multiple values of the specified type.

Method Detail

createConstant

public 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.

getAdapterUse

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

getExpectedMimeType

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

getInfo

public CNonElement getInfo()
Individual item type.

idUse

public 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.

isCollection

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