| /******************************************************************************* |
| * Copyright (c) 2000, 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.wst.ws.internal.datamodel; |
| |
| import java.util.Enumeration; |
| import java.util.Vector; |
| |
| /** |
| * This is the abstract class for a simple data model consisting of |
| * a network of named nodes (class Node). Every node carries a set |
| * of named properties (class Property). Nodes are interrelated by |
| * relationships (class Rel) and connections (class Connection). |
| * Each Model keeps a registry of all of its nodes, and keeps a |
| * reference to one "root" node that can be used as a starting |
| * point for navigation. |
| */ |
| public interface Model |
| { |
| |
| // Copyright |
| public static final String copyright = "(c) Copyright IBM Corporation 2000, 2002."; |
| |
| /** |
| * Sets the name of the model. |
| * @param name The name of the model. |
| */ |
| public void setName ( String name ); |
| |
| /** |
| * Gets the name of the model. |
| * @return String The name of the model. This must not be null. |
| */ |
| public String getName (); |
| |
| /** |
| * Sets a node as the root of the model. If the node does not |
| * belong to a model, then it is added automatically. If the |
| * node already belongs to another model, then the root node |
| * is not set and method returns false. |
| * @param root The node to set as the root. The node must |
| * belong either to this model or to no model. This must |
| * not be null. |
| * @return boolean True if the node was set as the root. |
| * This method returns false if the given node already belongs |
| * to another model. |
| */ |
| public boolean setRootElement ( Element root ); |
| |
| /** |
| * Returns the root node. This method always returns a node |
| * except on an empty Model. If setRootNode() has not been |
| * called, or if the last root node was removed from the model, |
| * then the method will select and return an arbitrary node as |
| * the root. This method will consistently return the same node |
| * until either |
| * (a) setRootNode() is called with a different node or |
| * (b) removeNode() is called to remove the node from the model. |
| * @return Node The current root node, or null if the model is empty. |
| */ |
| |
| public Element getRootElement (); |
| |
| /** |
| * Get the elements that have this name |
| * @param String name the name of the element |
| * @return Vector a vector of elements that have this name |
| * These elements may be of different types |
| **/ |
| |
| public Vector getElementsByName(String name); |
| |
| /** |
| * Adds a node to the model. If the node already belongs to another |
| * model then it will not be added. |
| * @param node The node to add. This must not be null. |
| * @return boolean True if the node was added successfully. |
| * This method returns false if the given node already belongs to |
| * the current model or to another model. |
| */ |
| public boolean addElement ( Element element ); |
| |
| /** |
| * Removes a node from the model. |
| * @param node The node to remove. This must not be null. |
| * @return boolean True if the node was removed successfully. |
| * This method returns false if the given node does not belong |
| * to this model. |
| */ |
| public boolean removeElement ( Element element ); |
| |
| /** |
| * Returns an enumeration of all nodes in the model and in no |
| * particular order, |
| * @return Enumeration An enumeration of all nodes in the model. |
| * This method never returns null. |
| */ |
| public Enumeration getElements (); |
| |
| /** |
| * Returns the number of nodes in the model. |
| * @return int The number of nodes in the model. |
| * This method never returns a negative value. |
| */ |
| public int getNumberOfElements (); |
| |
| /** |
| * Determines if this model contains the given node. |
| * @param node The node to check for. This must not be null. |
| * @return boolean True if and only if the model contains the node. |
| */ |
| public boolean containsElement ( Element element ); |
| |
| /* |
| * This function will provide the next number in the queue for the MUID |
| * |
| */ |
| public int getUniqueNumber(); |
| |
| /* |
| * heres what we call from the element |
| */ |
| public String makeMUID(String name); |
| |
| |
| } |
| |