Published on dev2dev (http://dev2dev.bea.com/)
http://dev2dev.bea.com/pub/a/2004/05/sdo_beatty.html
See this if you're having trouble printing code examples
by John Beatty
05/24/2004
public interface Person {
String getName();
void setName(String name);
}
|
Person p = new PersonImpl();
p.setName("John");
System.out.println(p.getName());
|
DataObject o = new DataObjectImpl();
o.set("name", "John");
System.out.println(o.get("name"));
|
o = dataobject()
setattr(o, "name", "John")
print o.name
|
class dataobject:
pass
|
DataObject o = new DataObjectImpl();
o.setString("name", "John");
System.out.println(o.getString("name"));
|
RowSet rs = ...;
System.out.println(rs.getString("name"));
And using the DOM API:
Node n = ...; // find the name node
System.out.println(n.getNodeValue());
|
Object o = ...; // set o to some Person object
if (o instanceof Person) {
Person p = (Person) o;
System.out.println(p.getName());
}
|
DataObject o = ...; // set o to some DataObject
Type t = o.getType();
if (t.getName() == "Person") {
System.out.println(o.getString("name"));
}
|
public void printDataObject(DataObject dataObject, int indent) {
Type type = dataObject.getType();
List properties = type.getProperties();
for (int p=0, size=properties.size(); p < size; p++) {
if (dataObject.isSet(p)) {
Property property = (Property) properties.get(p);
// For many-valued properties, process a list of values
if (property.isMany()) {
List values = dataObject.getList(p);
for (int v=0; count=values.size(); v < count; v++) {
printValue(values.get(v), property, indent);
}
else { // For single-valued properties, print out the value
printValue(dataObject.get(p), property, indent);
}
}
}
}
private void printValue(Object value, Property property, int indent) { // Get the name of the property
String propertyName = property.getName(); // Construct a string for the proper indentation
String margin = "";
for (int i = 0; i < indent; i++) margin += "\t";
if (!property.isContainment()) {
// For non-containment properties, just print the value
System.out.println(margin + propertyName + ": " + value);
} else {
// For containment properties, display the value with printDataObject
String typeName = property.getType().getName();
System.out.println(margin + propertyName + " (" +typeName+ "):");
printDataObject((DataObject) value, indent + 1);
}
}
|