KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > xdm > diff > Difference


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.xdm.diff;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.List JavaDoc;
24 import org.netbeans.modules.xml.xdm.nodes.Document;
25 import org.netbeans.modules.xml.xdm.nodes.Node;
26
27 /**
28  * This class represents diff between 2 elements of 2 XML documents
29  *
30  * @author Ayub Khan
31  */

32 public abstract class Difference {
33     
34     /** Creates a new instance of DiffEvent */
35     public Difference(NodeInfo.NodeType nodeType,
36             List JavaDoc<Node> ancestors1, List JavaDoc<Node> ancestors2,
37             Node n1, Node n2, int n1Pos, int n2Pos) {
38         this.nodeType = nodeType;
39         if (! (n1 instanceof Document)) {
40             assert ancestors1 != null && ! ancestors1.isEmpty() : "diff of non-root should have ancestors";
41         }
42         this.oldNodeInfo = new NodeInfo( n1, n1Pos, ancestors1, ancestors2);
43         this.newNodeInfo = new NodeInfo( n2, n2Pos, new ArrayList JavaDoc(ancestors1), new ArrayList JavaDoc(ancestors2));
44         if (newNodeInfo.getNode() != null && newNodeInfo.getNewAncestors().size() > 0) {
45             assert newNodeInfo.getNewAncestors().get(0).getId() != newNodeInfo.getNode().getId();
46         }
47     }
48     
49     public NodeInfo.NodeType getNodeType() {
50         return nodeType;
51     }
52     
53     /**
54      * @returns info on removed node.
55      */

56     public NodeInfo getOldNodeInfo() {
57         return oldNodeInfo;
58     }
59     
60     /**
61      * @return info on added node.
62      */

63     public NodeInfo getNewNodeInfo() {
64         return newNodeInfo;
65     }
66     
67     /**
68      * @return new path from parent to root.
69      */

70     public abstract List JavaDoc<Node> getNewAncestors();
71     
72     public abstract void setNewParent(Node n);
73     
74     public abstract Node getNewParent();
75     
76     ////////////////////////////////////////////////////////////////////////////////
77
// Member variables
78
////////////////////////////////////////////////////////////////////////////////
79

80     private NodeInfo.NodeType nodeType;
81     
82     private NodeInfo oldNodeInfo;
83     
84     private NodeInfo newNodeInfo;
85     
86 }
87
Popular Tags