package org.cloudgraph.web.sdo.adapter;
import java.util.UUID;
import org.cloudgraph.web.sdo.categorization.Categorization;
import org.cloudgraph.web.sdo.categorization.Category;
import org.cloudgraph.web.sdo.core.PropertyCategorization;
import org.cloudgraph.web.sdo.meta.Property;
import commonj.sdo.DataGraph;
import commonj.sdo.DataObject;
public class PropertyCategorizationAdapter extends CategorizationAdapter {
private PropertyCategorization propertyCategorization;
private Property root;
public PropertyCategorizationAdapter(Property element) {
this.root = element;
if (this.root == null)
throw new IllegalArgumentException("expected property element");
}
public PropertyCategorizationAdapter(PropertyCategorization propertyCategorization) {
super(propertyCategorization.getCategorization());
this.propertyCategorization = propertyCategorization;
if (this.propertyCategorization == null)
throw new IllegalArgumentException("unexpected null argument, 'propertyCategorization'");
this.root = this.propertyCategorization.getProperty();
if (this.root == null)
throw new IllegalArgumentException("expected property element");
}
public PropertyCategorizationAdapter(PropertyCategorization propertyCategorization,
Category cat) {
super(propertyCategorization.getCategorization(), cat);
this.propertyCategorization = propertyCategorization;
if (this.propertyCategorization == null)
throw new IllegalArgumentException("unexpected null argument, 'propertyCategorization'");
this.root = this.propertyCategorization.getProperty();
if (this.root == null)
throw new IllegalArgumentException("expected property element");
}
public PropertyCategorization getPropertyCategorization() {
return this.propertyCategorization;
}
protected boolean isInitializedCategorization() {
return this.propertyCategorization != null;
}
public DataGraph getDataGraph() {
return this.propertyCategorization.getDataGraph();
}
public DataObject getRoot() {
return this.propertyCategorization;
}
protected void initCategorization() {
this.propertyCategorization = this.root.createPropertyCategorization();
Categorization catz = this.propertyCategorization.createCategorization();
catz.setExternalId(UUID.randomUUID().toString());
super.setCategorization(catz);
}
}