Java tutorial
/* Copyright 2002-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel; import org.apache.commons.collections.iterators.ArrayIterator; import org.apache.ojb.broker.metadata.ClassDescriptor; import org.apache.ojb.broker.metadata.CollectionDescriptor; import org.apache.ojb.broker.metadata.DescriptorRepository; import org.apache.ojb.broker.metadata.FieldDescriptor; import org.apache.ojb.broker.metadata.IndexDescriptor; import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor; /** * * @author Administrator */ public class OjbMetaClassDescriptorNode extends OjbMetaTreeNode implements javax.swing.tree.MutableTreeNode { private static java.util.ArrayList supportedActions = new java.util.ArrayList(); private ClassDescriptor cld; /** Creates a new instance of OjbMetaClassDescriptorNode */ public OjbMetaClassDescriptorNode(DescriptorRepository pRepository, OjbMetaDataTreeModel pTreeModel, OjbMetaRootNode pparent, ClassDescriptor pCld) { super(pRepository, pTreeModel, pparent); this.cld = pCld; } public boolean getAllowsChildren() { return true; } public Object getAttribute(String key) { return null; } public Class getPropertyEditorClass() { return null; } public boolean isLeaf() { return false; } public void setAttribute(String key, Object value) { } /** Purpose of this method is to fill the children of the node. It should * replace all children in alChildren (the arraylist containing the children) * of this node and notify the TreeModel that a change has occurred. */ protected boolean _load() { java.util.ArrayList newChildren = new java.util.ArrayList(); /* @todo make this work */ // if (cld.getConnectionDescriptor() != null) // { // newChildren.add(new OjbMetaJdbcConnectionDescriptorNode( // this.getOjbMetaTreeModel().getRepository(), // this.getOjbMetaTreeModel(), // this, // cld.getConnectionDescriptor())); // } // // Add collection descriptors java.util.Iterator it = cld.getCollectionDescriptors().iterator(); while (it.hasNext()) { CollectionDescriptor collDesc = (CollectionDescriptor) it.next(); newChildren.add(new OjbMetaCollectionDescriptorNode(this.getOjbMetaTreeModel().getRepository(), this.getOjbMetaTreeModel(), this, collDesc)); } // Add extent classes Class it = cld.getExtentClassNames().iterator(); while (it.hasNext()) { String extentClassName = (String) it.next(); newChildren.add(new OjbMetaExtentClassNode(this.getOjbMetaTreeModel().getRepository(), this.getOjbMetaTreeModel(), this, extentClassName)); } // Get Field descriptors FieldDescriptor if (cld.getFieldDescriptions() != null) { it = new ArrayIterator(cld.getFieldDescriptions()); while (it.hasNext()) { FieldDescriptor fieldDesc = (FieldDescriptor) it.next(); newChildren.add(new OjbMetaFieldDescriptorNode(this.getOjbMetaTreeModel().getRepository(), this.getOjbMetaTreeModel(), this, fieldDesc)); } } else { System.out.println(cld.getClassNameOfObject() + " does not have field descriptors"); } // Get Indices IndexDescriptor it = cld.getIndexes().iterator(); while (it.hasNext()) { IndexDescriptor indexDesc = (IndexDescriptor) it.next(); newChildren.add(new OjbMetaIndexDescriptorNode(this.getOjbMetaTreeModel().getRepository(), this.getOjbMetaTreeModel(), this, indexDesc)); } // Get references ObjectReferenceDescriptor it = cld.getObjectReferenceDescriptors().iterator(); while (it.hasNext()) { ObjectReferenceDescriptor objRefDesc = (ObjectReferenceDescriptor) it.next(); newChildren.add(new OjbMetaObjectReferenceDescriptorNode(this.getOjbMetaTreeModel().getRepository(), this.getOjbMetaTreeModel(), this, objRefDesc)); } // Add this.alChildren = newChildren; this.getOjbMetaTreeModel().nodeStructureChanged(this); return true; } public String toString() { return "ClassDescriptor:" + this.cld.getClassNameOfObject(); // return "ClassDescriptor:" + this.cld.getClassOfObject().getName(); } /** * @see org.apache.ojb.tools.mapping.reversedb2.ActionTarget#getActions() */ public java.util.Iterator getActions() { return supportedActions.iterator(); } /** * @see org.apache.ojb.tools.mapping.reversedb2.ActionTarget#actionListCachable() */ public boolean actionListCachable() { return true; } public boolean actionListStatic() { return true; } /** Adds <code>child</code> to the receiver at <code>index</code>. * <code>child</code> will be messaged with <code>setParent</code>. * */ public void insert(javax.swing.tree.MutableTreeNode child, int index) { } /** Removes <code>node</code> from the receiver. <code>setParent</code> * will be messaged on <code>node</code>. * */ public void remove(javax.swing.tree.MutableTreeNode node) { } /** Removes the child at <code>index</code> from the receiver. * */ public void remove(int index) { } /** Removes the receiver from its parent. * */ public void removeFromParent() { } /** Sets the parent of the receiver to <code>newParent</code>. * */ public void setParent(javax.swing.tree.MutableTreeNode newParent) { } /** Resets the user object of the receiver to <code>object</code>. * */ public void setUserObject(Object object) { } /** * Return the descriptor object this node is associated with. E.g. if the * node displays a class descriptor, the ClassDescriptor describing the class * should be returned. Used for creating a Transferable. */ public Object getAssociatedDescriptor() { return cld; } }