}
}
}
private void addSimpleComponentAnnotations(SimpleComponent sc, Property property, boolean element) {
SDOProperty sdoProperty = (SDOProperty) property;
if (sdoProperty.isReadOnly()) {
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_READONLY, sdoXmlPrefix);
sc.getAttributesMap().put(qname, "true");
}
if (sdoProperty.hasAliasNames()) {
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
String aliasNamesString = buildAliasNameString(sdoProperty.getAliasNames());
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_ALIASNAME, sdoXmlPrefix);
sc.getAttributesMap().put(qname, aliasNamesString);
}
String xsdLocalName = sdoProperty.getXsdLocalName();
if ((xsdLocalName != null) && !(xsdLocalName.equals(sdoProperty.getName()))) {
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_NAME, sdoXmlPrefix);
sc.getAttributesMap().put(qname, sdoProperty.getName());
}
if ((element && !sdoProperty.isContainment() && !sdoProperty.getType().isDataType()) || (!element && !sdoProperty.getType().isDataType())) {
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
String uri = sdoProperty.getType().getURI();
String value = sdoProperty.getType().getName();
if (uri != null) {
String typePrefix = getPrefixForURI(uri);
if (typePrefix != null) {
value = typePrefix + ":" + value;
}
}
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_PROPERTYTYPE, sdoXmlPrefix);
sc.getAttributesMap().put(qname, value);
}
if (sdoProperty.getOpposite() != null) {
String value = sdoProperty.getOpposite().getName();
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_OPPOSITEPROPERTY, sdoXmlPrefix);
sc.getAttributesMap().put(qname, value);
}
Property xmlDataTypeProperty = aHelperContext.getTypeHelper().getOpenContentProperty(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_DATATYPE);
Type dataType = (Type) sdoProperty.get(xmlDataTypeProperty);
if (dataType == null) {
dataType = getAutomaticDataTypeForType(sdoProperty.getType());
}
if (dataType != null && !shouldSuppressDataType(sdoProperty, dataType)) {
String sdoXmlPrefix = getPrefixForURI(SDOConstants.SDOXML_URL);
QName qname = new QName(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_DATATYPE, sdoXmlPrefix);
String dataTypeString = dataType.getName();
if (dataType.getURI() != null) {
String dataTypePrefix = getPrefixForURI(dataType.getURI());
if (dataTypePrefix != null) {
dataTypeString = dataTypePrefix + ":" + dataTypeString;
}
}
sc.getAttributesMap().put(qname, dataTypeString);
}
if (element) {
String mimeType = (String) sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY);
if (mimeType != null) {
String prefix = getPrefixForURI(SDOConstants.MIMETYPE_URL);
QName qname = new QName(SDOConstants.XML_MIME_TYPE_QNAME.getNamespaceURI(), SDOConstants.XML_MIME_TYPE_QNAME.getLocalPart(), prefix);
sc.getAttributesMap().put(qname, mimeType);
} else {
mimeType = (String) sdoProperty.get(SDOConstants.MIME_TYPE_PROPERTY_PROPERTY);
if (mimeType != null) {
String prefix = getPrefixForURI(SDOConstants.ORACLE_SDO_URL);
QName qname = new QName(SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getNamespaceURI(), SDOConstants.XML_MIME_TYPE_PROPERTY_QNAME.getLocalPart(), prefix);
sc.getAttributesMap().put(qname, mimeType);
}