]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/impl/Mapping.java
Eliminate unnecessary storage of graph objects in map objects.
[simantics/platform.git] / bundles / org.simantics.objmap2 / src / org / simantics / objmap / graph / impl / Mapping.java
index 1c44ef9304aee20141386a0271c0bbc36aa85cf1..1589e94326ef2be74755dbd1e114895bdc111ca1 100644 (file)
@@ -73,13 +73,13 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        }
        
        private void createDomain(WriteGraph g, Link<Domain,Range> link) throws MappingException {
-           LOGGER.info("        createDomain for " + link.rangeElement);
+           LOGGER.trace("        createDomain for " + link.rangeElement);
                ILinkType<Domain,Range> type = schema.linkTypeOfRangeElement(link.rangeElement);
                Domain domainElement = type.createDomainElement(g, link.rangeElement);
                link.type = type;
                link.domainElement = domainElement;
                domain.put(domainElement, link);
-               type.createDomain(g, new RangeToDomain(g), domainElement, link.rangeElement);
+               type.createDomain(g, new RangeToDomain(), domainElement, link.rangeElement);
                
         // TODO Should we do this only if the mapping is listening?
         domainModified(link);
@@ -92,7 +92,7 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
                link.type = type;
                link.rangeElement = rangeElement;
                range.put(rangeElement, link);
-               type.createRange(g, new DomainToRange(g), link.domainElement, rangeElement);
+               type.createRange(g, new DomainToRange(), link.domainElement, rangeElement);
        }
        
        Set<Domain> domainSet = new AbstractSet<Domain>() {
@@ -173,10 +173,7 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        
        class DomainToRange implements IForwardMapping<Domain, Range> {
 
-               ReadGraph g;
-               
-               public DomainToRange(ReadGraph g) {
-                       this.g = g;
+               public DomainToRange() {
                }
 
                @Override
@@ -197,10 +194,10 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
                    link.domainModified = true;
                    modifiedDomainLinks.add(link);
                            domain.put(element, link);           
-                           createRange(g, link);       
+                           createRange(graph, link);   
                        }
                        else if(link.type == null) 
-                               createRange(g, link);
+                               createRange(graph, link);
             return link.rangeElement;
                }
                
@@ -213,12 +210,10 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        
        class RangeToDomain extends DomainToRange implements IBackwardMapping<Domain, Range> {
 
-               WriteGraph g;
-               
-               public RangeToDomain(WriteGraph g) {
-                       super(g);
-                       this.g = g;
+               public RangeToDomain() {
+                       super();
                }
+               
                @Override
                public Domain inverseGet(Range element) {
                        
@@ -237,10 +232,10 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
                            link.rangeModified = true;
                 modifiedRangeLinks.add(link);
                            range.put(element, link);
-                           createDomain(g, link);                              
+                           createDomain(graph, link);                          
                        }
                        else if(link.type == null)
-                               createDomain(g, link);
+                               createDomain(graph, link);
                        return link.domainElement;
                }
                
@@ -264,11 +259,11 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        
        @Override
        public synchronized Collection<Domain> updateDomain(WriteGraph g) throws MappingException {
-           LOGGER.info("Mapping.updateDomain");
-               RangeToDomain map = new RangeToDomain(g);
+           LOGGER.trace("Mapping.updateDomain");
+               RangeToDomain map = new RangeToDomain();
                ArrayList<Domain> updated = new ArrayList<Domain>();
                while(!modifiedRangeLinks.isEmpty()) {
-                   LOGGER.info("    modifiedRangeLinks.size() = " + modifiedRangeLinks.size());
+                   LOGGER.trace("    modifiedRangeLinks.size() = " + modifiedRangeLinks.size());
                    
                        Link<Domain,Range> link = modifiedRangeLinks.remove(modifiedRangeLinks.size()-1);
                        link.rangeModified = false;
@@ -292,11 +287,11 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        
        @Override
        public synchronized Collection<Range> updateRange(ReadGraph g) throws MappingException {
-           LOGGER.info("Mapping.updateRange");
-               DomainToRange map = new DomainToRange(g);
+           LOGGER.trace("Mapping.updateRange");
+               DomainToRange map = new DomainToRange();
                ArrayList<Range> updated = new ArrayList<Range>();
                while(!modifiedDomainLinks.isEmpty()) {             
-                   LOGGER.info("    modifiedDomainLinks.size() = " + modifiedDomainLinks.size());
+                   LOGGER.trace("    modifiedDomainLinks.size() = " + modifiedDomainLinks.size());
                    
                        Link<Domain,Range> link = modifiedDomainLinks.remove(modifiedDomainLinks.size()-1);
                        link.domainModified = false;
@@ -359,7 +354,7 @@ public class Mapping<Domain, Range> implements IMapping<Domain, Range> {
        void domainModified(Link<Domain,Range> link) {
            if(!link.domainModified) {          
                synchronized(modifiedDomainLinks) {
-                   LOGGER.info("        domainModified for " + link.rangeElement);
+                   LOGGER.trace("        domainModified for " + link.rangeElement);
                 link.domainModified = true;
                 modifiedDomainLinks.add(link);
                 if(modifiedDomainLinks.size() == 1) {