diff options
| author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-11-03 12:55:03 +0100 | 
|---|---|---|
| committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-11-03 12:55:03 +0100 | 
| commit | b1078581d4730d4944180a739fcce51a39259112 (patch) | |
| tree | c8481f3667de53074810b7b678c49aad7d1881a3 /src/pl/edu/mimuw/cloudatlas/model/ZMI.java | |
| parent | 9639cc6e14b00c6039b4a35c39764f66cc48cb7a (diff) | |
Initialize gradle project
Diffstat (limited to 'src/pl/edu/mimuw/cloudatlas/model/ZMI.java')
| -rw-r--r-- | src/pl/edu/mimuw/cloudatlas/model/ZMI.java | 166 | 
1 files changed, 0 insertions, 166 deletions
diff --git a/src/pl/edu/mimuw/cloudatlas/model/ZMI.java b/src/pl/edu/mimuw/cloudatlas/model/ZMI.java deleted file mode 100644 index a6b78da..0000000 --- a/src/pl/edu/mimuw/cloudatlas/model/ZMI.java +++ /dev/null @@ -1,166 +0,0 @@ -/** - * Copyright (c) 2014, University of Warsaw - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted - * provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package pl.edu.mimuw.cloudatlas.model; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map.Entry; - -/** - * A zone management information object. This object is a single node in a zone hierarchy. It stores zone attributes as well as - * references to its father and sons in the tree. - */ -public class ZMI implements Cloneable { -    private final AttributesMap attributes = new AttributesMap(); - -    private final List<ZMI> sons = new ArrayList<ZMI>(); -    private ZMI father; - -    /** -     * Creates a new ZMI with no father (the root zone) and empty sons list. -     */ -    public ZMI() { -        this(null); -    } - -    /** -     * Creates a new ZMI with the specified node as a father and empty sons list. This method does not perform any -     * operation on <code>father</code>. In particular, setting this object <code>father</code>'s son must be done -     * separately. -     * -     * @param father the father of this ZMI -     * @see #addSon(ZMI) -     */ -    public ZMI(ZMI father) { -        this.father = father; -    } - -    /** -     * Gets the father of this ZMI. -     * -     * @return the father of this ZMI or <code>null</code> if this is the root zone -     */ -    public ZMI getFather() { -        return father; -    } - -    /** -     * Sets or changes the father of this ZMI in the tree. This method does not perform any operation on -     * <code>father</code>. In particular, setting this object as <code>father</code>'s son must be done separately. -     * -     * @param father a new father for this ZMI -     * @see #addSon(ZMI) -     */ -    public void setFather(ZMI father) { -        this.father = father; -    } - -    /** -     * Gets the list of sons of this ZMI. Modifying a value in the returned list will cause an exception. -     * -     * @return the list of sons -     */ -    public List<ZMI> getSons() { -        return Collections.unmodifiableList(sons); -    } - -    /** -     * Adds the specified ZMI to the list of sons of this ZMI. This method does not perform any operation on -     * <code>son</code>. In particular, setting this object as <code>son</code>'s father must be done separately. -     * -     * @param son -     * @see #ZMI(ZMI) -     * @see #setFather(ZMI) -     */ -    public void addSon(ZMI son) { -        sons.add(son); -    } - -    /** -     * Removes the specified ZMI from the list of sons of this ZMI. This method does not perform any operation on -     * <code>son</code>. In particular, its father remains unchanged. -     * -     * @param son -     * @see #setFather(ZMI) -     */ -    public void removeSon(ZMI son) { -        sons.remove(son); -    } - -    /** -     * Gets a map of all the attributes stored in this ZMI. -     * -     * @return map of attributes -     */ -    public AttributesMap getAttributes() { -        return attributes; -    } - -    /** -     * Prints recursively in a prefix order (starting from this ZMI) a whole tree with all the attributes. -     * -     * @param stream a destination stream -     * @see #toString() -     */ -    public void printAttributes(PrintStream stream) { -        for(Entry<Attribute, Value> entry : attributes) -            stream.println(entry.getKey() + " : " + entry.getValue().getType() + " = " + entry.getValue()); -        System.out.println(); -        for(ZMI son : sons) -            son.printAttributes(stream); -    } - -    /** -     * Creates an independent copy of a whole hierarchy. A returned ZMI has the same reference as father (but the -     * father does not have a reference to it as a son). For the root zone, the copy is completely independent, since -     * its father is <code>null</code>. -     * -     * @return a deep copy of this ZMI -     */ -    @Override -    public ZMI clone() { -        ZMI result = new ZMI(father); -        result.attributes.add(attributes.clone()); -        for(ZMI son : sons) { -            ZMI sonClone = son.clone(); -            result.sons.add(sonClone); -            sonClone.father = result; -        } -        return result; -    } - -    /** -     * Prints a textual representation of this ZMI. It contains only attributes of this node. -     * -     * @return a textual representation of this object -     * @see #printAttributes(PrintStream) -     */ -    @Override -    public String toString() { -        return attributes.toString(); -    } -}  |