source: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/internal/parser/ASTFObject.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 2.0 KB
Line 
1/* Generated By:JJTree: Do not edit this line. ASTFObject.java */
2
3package com.framsticks.framclipse.internal.parser;
4
5import org.eclipse.jface.text.IDocument;
6import org.eclipse.jface.text.IRegion;
7import org.eclipse.jface.text.Region;
8
9
10public class ASTFObject extends ElementWithOffset {
11       
12        private String className = "N/A";
13       
14        public ASTFObject(int id) {
15            super(id);
16        }
17       
18        public ASTFObject(FramclipseNonScriptParser p, int id) {
19            super(p, id);
20        }
21       
22        @Override
23        public String toString() {             
24                String id = "";
25                for (Node child : children) 
26                {
27                        if(child  instanceof ASTProperty)
28                        {
29                                ASTProperty prop = (ASTProperty)child ;
30                                String name = prop.getName();
31                                if ("id".equalsIgnoreCase(name))
32                                        id = prop.getValue()+" : ";
33                        }
34                }
35                return id+className;
36        }
37
38        public String getClassName() {
39                return className;
40        }
41
42        public void setClassName(String className) {
43                this.className = className;
44        }
45 
46        public IRegion getIdRegion()
47        {               
48                if(children != null)
49                {
50                        for (Node child : children) 
51                        {
52                                if(child  instanceof ASTProperty)
53                                {
54                                        ASTProperty prop = (ASTProperty)child ;
55                                        String name = prop.getName();
56                                        if(name != null && name.toLowerCase().equals("id") )
57                                        {
58                                                return new Region(prop.getBeginOffset(), prop.getEndOffset() - prop.getBeginOffset() + 1);
59                                        }
60                                }
61                        }
62                }
63               
64                return null;
65        }
66
67        @Override
68        public boolean isEquivalent(ElementWithOffset element, IDocument document) {
69               
70                if(!(element instanceof ASTFObject))
71                        return false;
72               
73                ASTFObject obj = ((ASTFObject)element);
74               
75                if(!(getClassName().equals(obj.getClassName())))
76                        return false;
77               
78                IRegion reg1 = getIdRegion();
79                IRegion reg2 = obj.getIdRegion();
80               
81                if(reg1 != null && reg2 == null || reg1 == null && reg2 != null)
82                        return false;
83               
84                if(reg1 != null && reg2 != null)
85                {
86                        try
87                        {
88                                if(!document.get(reg1.getOffset(), reg1.getLength()).equals(document.get(reg2.getOffset(), reg2.getLength())))
89                                        return false;
90                        }
91                        catch(Exception ex)
92                        {
93                               
94                        }
95                }
96               
97                return super.isEquivalent(element, document);
98        }
99
100       
101}
Note: See TracBrowser for help on using the repository browser.