Package org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel

Source Code of org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel.OjbMetaClassDescriptorNode

/* 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;
    }

}
TOP

Related Classes of org.apache.ojb.tools.mapping.reversedb2.ojbmetatreemodel.OjbMetaClassDescriptorNode

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.