xmltool.datastructure
Class ParsedData

java.lang.Object
  |
  +--xmltool.datastructure.ParsedData

public class ParsedData
extends java.lang.Object
implements java.lang.Cloneable

ParsedData defines the basic datastructure for defining elements and attributes. This has a recursive representation to define a DTD accurately. Used by Node class for creating and saving the query design.


Field Summary
 ParsedData[] elemsPD
          Array of ParsedData types to contain information about each child element of the element corresponding to elements[] .
 JoinLines[] joinLines
          Actual storage for links, in terms of which element or attribute are selected
 LinePoints[] linePoints
          Actual storage for links, in terms of coordinates
 int[] lines
          Array to keep track of number of links drawn line[i] = 0 if there is a line at the ith position (some special unit), else line[i] = -1
 int[][] lookUp
          Temporary storage of attributes or elements that are clicked to form AND or OR links
static int MAX
          Maximum number of elements/attributes in a DTD
 int numLines
          Number of lines or links drawn
 java.awt.geom.Rectangle2D.Float[] rect
          Storage for rectangle information, to be drawn for the user to click in and create AND or OR conditions
 ParsedData[] refPD
          Array of ParsedData types to contain information about each child element of the element corresponding to elements[] .
 int[] refPresent
          The reference value corresponding to refPD of the parsedData for an element This is 1 if there is a reference, else is 0.
 java.lang.String root
          Root of the DTD
static java.lang.String strURL
          URL from where to fetch data
 boolean valid
          Flag to denote if the filename for the DTD entered is valid
 java.util.Vector[] vect
          Total number of DTD elements having child elements
 int vectCount
          Total number of DTD elements having child elements
 
Constructor Summary
ParsedData()
          Default constructor
ParsedData(ParsedData cur)
          Replicate and return a new object
 
Method Summary
 ParsedData cloneIt()
          Clone the ParsedData object
 void cloneIt(int i, int j, java.lang.String val, java.lang.String opVal)
          Clone the attribute j of element i
 void cloneIt(int i, java.lang.String val, java.lang.String opVal)
          Clone the element i
 boolean getAndAction()
           
 int getAttributesCount(int i)
           
 boolean getElementsAttributesConsidered(int i, int j)
          Check if this ith elements jth attribute has been considered during parsing or not.
 boolean getElementsAttributesDuplicate(int i, int j)
           
 boolean getElementsAttributesEditable(int i, int j)
           
 java.lang.String getElementsAttributesName(int i, int j)
           
 java.lang.String getElementsAttributesOpValue(int i, int j)
           
 boolean getElementsAttributesSelected(int i, int j)
           
 int getElementsAttributesType(int i, int j)
           
 java.lang.String getElementsAttributesValue(int i, int j)
           
 boolean getElementsConsidered(int i)
           
 int getElementsCount()
           
 boolean getElementsDuplicate(int i)
           
 boolean getElementsEditable(int i)
           
 boolean getElementsHasChild(int i)
           
 boolean getElementsMemberOfCollection(int i)
           
 java.lang.String getElementsName(int i)
           
 java.lang.String getElementsOpValue(int i)
           
 ParsedData getElementsRef(int i)
          Get the reference to the child of element i
 boolean getElementsSelected(int i)
           
 int getElementsType(int i)
           
 java.lang.String getElementsValue(int i)
           
 boolean getEvaluated()
           
 boolean getGlobalAction()
           
 boolean getIsRootCollection()
           
 int getNumLines()
          Get the number of links drawn
 int getRectangleCount()
           
 boolean inLine(int a, int b, int i)
          Check if the element or attribute is in this joinLines[i]
 void insertLookUp(int count, int x, int y)
          Insert into LookUp, the element or attribute information, whichever has been selected
 void insertRect(float x, float y, float width, float height)
          Include new rectangle to be drawn
 void printIt(ParsedData cur)
          Method for printing out values in ParsedData.
 void putLinks(int numClicks, int[] toLink)
          Draw and set the links in the arrays, from information from local data members
 void replicate(ParsedData cur, ParsedData newObj)
          Replicate and return a new object.
 void resetLines(int i)
          Reset the line drawn at ith position to indicate a deleted link.
 void resetLink(int i)
          Reset the link Arrays for index i
 void setAndAction(boolean c)
           
 void setElements(int i, java.lang.String elementName, boolean editable, java.lang.String elementValue, boolean selected, int elementType, java.lang.String elementOpValue)
           
 void setElements(java.lang.String elementName, int elementType, boolean editable)
           
 void setElementsAttributes(int i, int j, java.lang.String attributeName, boolean editable, java.lang.String attributeValue, boolean selected, int attributeType, java.lang.String attributeOpValue)
           
 void setElementsAttributes(int i, java.lang.String attributeName, int attributeType, boolean editable)
           
 void setElementsAttributesConsidered(int i, int j, boolean c)
           
 void setElementsAttributesCount(int i, int c)
           
 void setElementsAttributesDuplicate(int i, int j, boolean c)
           
 void setElementsAttributesEditable(int i, int j, boolean c)
           
 void setElementsAttributesName(int i, int j, java.lang.String c)
           
 void setElementsAttributesOpValue(int i, int j, java.lang.String c)
           
 void setElementsAttributesSelected(int i, int j, boolean c)
           
 void setElementsAttributesValue(int i, int j, java.lang.String c)
           
 void setElementsConsidered(int i, boolean c)
           
 void setElementsCount(int c)
           
 void setElementsDuplicate(int i, boolean c)
           
 void setElementsEditable(int i, boolean c)
           
 void setElementsHasChild(int i, boolean c)
           
 void setElementsMemberOfCollection(int i, boolean c)
          Set the member of collection property for element i.
 void setElementsName(int i, java.lang.String c)
           
 void setElementsOpValue(int i, java.lang.String c)
           
 void setElementsRef(int i, ParsedData c)
          Set the refPD, that is the body of element i as pointing to c (which is a ParsedData type)
 void setElementsSelected(int i, boolean c)
           
 void setElementsValue(int i, java.lang.String c)
           
 void setEvaluated(boolean c)
           
 void setGlobalAction(boolean c)
           
 void setIsRootCollection(boolean c)
           
 void setLines(int i)
          Set the ith line in line array, to indicate a link drawn
 void setNumLines(int c)
          Set the number of links drawn to be c
 void setRectangleCount(int c)
           
 void updateElements(int i, java.lang.String elementValue, boolean selected, java.lang.String elementOpValue)
           
 void updateElementsAttributes(int i, int j, java.lang.String attributeValue, boolean selected, java.lang.String attributeOpValue)
           
 java.lang.String validateAttributeType(int type)
          Validate attribute type--replace the type field with appropriate value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX

public static final int MAX
Maximum number of elements/attributes in a DTD

strURL

public static final java.lang.String strURL
URL from where to fetch data

root

public java.lang.String root
Root of the DTD

elemsPD

public ParsedData[] elemsPD
Array of ParsedData types to contain information about each child element of the element corresponding to elements[] . This is null if the child element is already an element that is parsed, so that there is no recursive structure built unnecessarily.

refPD

public ParsedData[] refPD
Array of ParsedData types to contain information about each child element of the element corresponding to elements[] . This is diffnt from above in the sense that it only points to who is to be cloned.

refPresent

public int[] refPresent
The reference value corresponding to refPD of the parsedData for an element This is 1 if there is a reference, else is 0.

valid

public boolean valid
Flag to denote if the filename for the DTD entered is valid

vectCount

public int vectCount
Total number of DTD elements having child elements

lookUp

public int[][] lookUp
Temporary storage of attributes or elements that are clicked to form AND or OR links

rect

public java.awt.geom.Rectangle2D.Float[] rect
Storage for rectangle information, to be drawn for the user to click in and create AND or OR conditions

lines

public int[] lines
Array to keep track of number of links drawn line[i] = 0 if there is a line at the ith position (some special unit), else line[i] = -1

numLines

public int numLines
Number of lines or links drawn

joinLines

public JoinLines[] joinLines
Actual storage for links, in terms of which element or attribute are selected

linePoints

public LinePoints[] linePoints
Actual storage for links, in terms of coordinates

vect

public java.util.Vector[] vect
Total number of DTD elements having child elements
Constructor Detail

ParsedData

public ParsedData(ParsedData cur)
Replicate and return a new object
Parameters:
cur - ParsedData to be replicated

ParsedData

public ParsedData()
Default constructor
Method Detail

cloneIt

public ParsedData cloneIt()
Clone the ParsedData object

cloneIt

public void cloneIt(int i,
                    java.lang.String val,
                    java.lang.String opVal)
Clone the element i
Parameters:
i - Element to be cloned
val - Value of the new element

cloneIt

public void cloneIt(int i,
                    int j,
                    java.lang.String val,
                    java.lang.String opVal)
Clone the attribute j of element i
Parameters:
i - Element whose attribute is to be cloned
j - Attribute to be cloned
val - Value of the new element

replicate

public void replicate(ParsedData cur,
                      ParsedData newObj)
Replicate and return a new object. This is the method which actually does the work when called by the constructor, ParsedData (ParsedData)
Parameters:
cur - ParsedData to be replicated
newObj - Replicated ParsedData

printIt

public void printIt(ParsedData cur)
Method for printing out values in ParsedData. Only for debugging purposes
Parameters:
cur - ParsedData whose values are to be printed

insertLookUp

public void insertLookUp(int count,
                         int x,
                         int y)
Insert into LookUp, the element or attribute information, whichever has been selected
Parameters:
count - The number of this selected element/attribute
x - Element number
y - Attribute number

insertRect

public void insertRect(float x,
                       float y,
                       float width,
                       float height)
Include new rectangle to be drawn
Parameters:
x - Top Left corner's x coordinate
y - Top Left corner's y coordinate
width - Width of the rectangle
height - Height of the rectangle

inLine

public boolean inLine(int a,
                      int b,
                      int i)
Check if the element or attribute is in this joinLines[i]
Parameters:
i - Index for joinLines for which we are checking the value
a - Element number
b - Attribute number
Returns:
boolean true if element/attribute selected, else false

resetLink

public void resetLink(int i)
Reset the link Arrays for index i
Parameters:
i - Index for which values are to be resetted

putLinks

public void putLinks(int numClicks,
                     int[] toLink)
Draw and set the links in the arrays, from information from local data members
Parameters:
numClicks - Numeber of clicks used in drawing the link
toLink[] - Array containing information on which attributes/ elements were clicked

setElements

public void setElements(int i,
                        java.lang.String elementName,
                        boolean editable,
                        java.lang.String elementValue,
                        boolean selected,
                        int elementType,
                        java.lang.String elementOpValue)

setElements

public void setElements(java.lang.String elementName,
                        int elementType,
                        boolean editable)

setElementsAttributes

public void setElementsAttributes(int i,
                                  int j,
                                  java.lang.String attributeName,
                                  boolean editable,
                                  java.lang.String attributeValue,
                                  boolean selected,
                                  int attributeType,
                                  java.lang.String attributeOpValue)

setElementsAttributes

public void setElementsAttributes(int i,
                                  java.lang.String attributeName,
                                  int attributeType,
                                  boolean editable)

updateElementsAttributes

public void updateElementsAttributes(int i,
                                     int j,
                                     java.lang.String attributeValue,
                                     boolean selected,
                                     java.lang.String attributeOpValue)

updateElements

public void updateElements(int i,
                           java.lang.String elementValue,
                           boolean selected,
                           java.lang.String elementOpValue)

setElementsAttributesCount

public void setElementsAttributesCount(int i,
                                       int c)

getElementsAttributesType

public int getElementsAttributesType(int i,
                                     int j)

setElementsAttributesSelected

public void setElementsAttributesSelected(int i,
                                          int j,
                                          boolean c)

setElementsAttributesDuplicate

public void setElementsAttributesDuplicate(int i,
                                           int j,
                                           boolean c)

setElementsAttributesConsidered

public void setElementsAttributesConsidered(int i,
                                            int j,
                                            boolean c)

setElementsAttributesEditable

public void setElementsAttributesEditable(int i,
                                          int j,
                                          boolean c)

setElementsAttributesName

public void setElementsAttributesName(int i,
                                      int j,
                                      java.lang.String c)

setElementsAttributesValue

public void setElementsAttributesValue(int i,
                                       int j,
                                       java.lang.String c)

setElementsAttributesOpValue

public void setElementsAttributesOpValue(int i,
                                         int j,
                                         java.lang.String c)

getElementsAttributesValue

public java.lang.String getElementsAttributesValue(int i,
                                                   int j)

getElementsAttributesOpValue

public java.lang.String getElementsAttributesOpValue(int i,
                                                     int j)

getElementsAttributesName

public java.lang.String getElementsAttributesName(int i,
                                                  int j)

getElementsAttributesSelected

public boolean getElementsAttributesSelected(int i,
                                             int j)

getElementsAttributesEditable

public boolean getElementsAttributesEditable(int i,
                                             int j)

getElementsAttributesDuplicate

public boolean getElementsAttributesDuplicate(int i,
                                              int j)

getElementsAttributesConsidered

public boolean getElementsAttributesConsidered(int i,
                                               int j)
Check if this ith elements jth attribute has been considered during parsing or not. This method is needed, because the same attribute can be an attirbute of more than one element and so information can be reused.
Parameters:
i - element number
j - attreibute number
Returns:
boolean true if considered, false if not

getElementsMemberOfCollection

public boolean getElementsMemberOfCollection(int i)

getElementsSelected

public boolean getElementsSelected(int i)

getElementsDuplicate

public boolean getElementsDuplicate(int i)

getElementsConsidered

public boolean getElementsConsidered(int i)

setElementsDuplicate

public void setElementsDuplicate(int i,
                                 boolean c)

setElementsConsidered

public void setElementsConsidered(int i,
                                  boolean c)

setElementsValue

public void setElementsValue(int i,
                             java.lang.String c)

setElementsOpValue

public void setElementsOpValue(int i,
                               java.lang.String c)

setElementsName

public void setElementsName(int i,
                            java.lang.String c)

setElementsHasChild

public void setElementsHasChild(int i,
                                boolean c)

setElementsRef

public void setElementsRef(int i,
                           ParsedData c)
Set the refPD, that is the body of element i as pointing to c (which is a ParsedData type)
Parameters:
i - element who is the parent
c - child of the ith element

setElementsEditable

public void setElementsEditable(int i,
                                boolean c)

setElementsMemberOfCollection

public void setElementsMemberOfCollection(int i,
                                          boolean c)
Set the member of collection property for element i. It is member of collection if its parent is a set or a bag (collection).
Parameters:
i - element whose value is to be set
c - value to be set

setElementsSelected

public void setElementsSelected(int i,
                                boolean c)

getElementsEditable

public boolean getElementsEditable(int i)

getElementsType

public int getElementsType(int i)

getElementsValue

public java.lang.String getElementsValue(int i)

getElementsOpValue

public java.lang.String getElementsOpValue(int i)

getElementsHasChild

public boolean getElementsHasChild(int i)

getElementsRef

public ParsedData getElementsRef(int i)
Get the reference to the child of element i
Parameters:
i - parent element
Returns:
ParsedData reference to child

getElementsName

public java.lang.String getElementsName(int i)

getAttributesCount

public int getAttributesCount(int i)

setEvaluated

public void setEvaluated(boolean c)

getEvaluated

public boolean getEvaluated()

setElementsCount

public void setElementsCount(int c)

setGlobalAction

public void setGlobalAction(boolean c)

getGlobalAction

public boolean getGlobalAction()

getElementsCount

public int getElementsCount()

setAndAction

public void setAndAction(boolean c)

getAndAction

public boolean getAndAction()

setRectangleCount

public void setRectangleCount(int c)

getRectangleCount

public int getRectangleCount()

setNumLines

public void setNumLines(int c)
Set the number of links drawn to be c
Parameters:
c - number of links drawn

getNumLines

public int getNumLines()
Get the number of links drawn
Returns:
int number of links drawn

resetLines

public void resetLines(int i)
Reset the line drawn at ith position to indicate a deleted link.
Parameters:
i - line to be resetted

setLines

public void setLines(int i)
Set the ith line in line array, to indicate a link drawn
Parameters:
i - the position of the line drawn

setIsRootCollection

public void setIsRootCollection(boolean c)

getIsRootCollection

public boolean getIsRootCollection()

validateAttributeType

public java.lang.String validateAttributeType(int type)
Validate attribute type--replace the type field with appropriate value
Parameters:
type - The type as returned by the parser return String The value that is to substitute the type