* Switch the descriptor to the correct type and
* set the data-type name and format.
*/
public void process(MetadataDescriptor descriptor) {
ClassDescriptor oldDesriptor = descriptor.getClassDescriptor();
EISDescriptor newDescriptor = new EISDescriptor();
newDescriptor.setJavaClassName(oldDesriptor.getJavaClassName());
if (this.dataType != null) {
newDescriptor.setDataTypeName(getDataType());
} else {
String defaultName = Helper.getShortClassName(descriptor.getJavaClassName());
defaultName = getProject().useDelimitedIdentifier() ? defaultName : defaultName.toUpperCase();
newDescriptor.setDataTypeName(defaultName);
}
if (this.dataFormat != null) {
if (this.dataFormat.equals("XML")) {
newDescriptor.setDataFormat(EISDescriptor.XML);
} else if (this.dataFormat.equals("MAPPED")) {
newDescriptor.setDataFormat(EISDescriptor.MAPPED);
} else if (this.dataFormat.equals("INDEXED")) {
newDescriptor.setDataFormat(EISDescriptor.INDEXED);
}
}
newDescriptor.setAlias("");
// This is the default, set it in case no existence-checking is set.
newDescriptor.getQueryManager().checkDatabaseForDoesExist();
if (oldDesriptor.isAggregateDescriptor()) {
newDescriptor.descriptorIsAggregate();
}
descriptor.setDescriptor(newDescriptor);
// Also need to switch the descriptor in the project.
descriptor.getProject().getProject().getOrderedDescriptors().remove(oldDesriptor);
descriptor.getProject().getProject().getOrderedDescriptors().add(newDescriptor);