import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
import org.simantics.db.ReadGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.ReadGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.exception.DatabaseException;
import org.simantics.objmap.backward.IBackwardMapping;
import org.simantics.objmap.exceptions.MappingException;
import org.simantics.objmap.forward.IForwardMapping;
import org.simantics.objmap.backward.IBackwardMapping;
import org.simantics.objmap.exceptions.MappingException;
import org.simantics.objmap.forward.IForwardMapping;
import org.simantics.objmap.graph.IMappingListener;
import org.simantics.objmap.graph.schema.ILinkType;
import org.simantics.objmap.graph.schema.IMappingSchema;
import org.simantics.objmap.graph.IMappingListener;
import org.simantics.objmap.graph.schema.ILinkType;
import org.simantics.objmap.graph.schema.IMappingSchema;
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);
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);
link.type = type;
link.rangeElement = rangeElement;
range.put(rangeElement, link);
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);
link.domainModified = true;
modifiedDomainLinks.add(link);
domain.put(element, link);
link.domainModified = true;
modifiedDomainLinks.add(link);
domain.put(element, link);
link.rangeModified = true;
modifiedRangeLinks.add(link);
range.put(element, link);
link.rangeModified = true;
modifiedRangeLinks.add(link);
range.put(element, link);
Link<Domain,Range> link = modifiedRangeLinks.remove(modifiedRangeLinks.size()-1);
link.rangeModified = false;
Link<Domain,Range> link = modifiedRangeLinks.remove(modifiedRangeLinks.size()-1);
link.rangeModified = false;
Link<Domain,Range> link = modifiedDomainLinks.remove(modifiedDomainLinks.size()-1);
link.domainModified = false;
Link<Domain,Range> link = modifiedDomainLinks.remove(modifiedDomainLinks.size()-1);
link.domainModified = false;
if(listensDomain) {
RangeUpdateRequest<Domain,Range> request = new RangeUpdateRequest<Domain,Range>(link, map, this);
if(listensDomain) {
RangeUpdateRequest<Domain,Range> request = new RangeUpdateRequest<Domain,Range>(link, map, this);
}
else
if(link.type.updateRange(g, map, link.domainElement, link.rangeElement))
}
else
if(link.type.updateRange(g, map, link.domainElement, link.rangeElement))
void domainModified(Link<Domain,Range> link) {
if(!link.domainModified) {
synchronized(modifiedDomainLinks) {
void domainModified(Link<Domain,Range> link) {
if(!link.domainModified) {
synchronized(modifiedDomainLinks) {
link.domainModified = true;
modifiedDomainLinks.add(link);
if(modifiedDomainLinks.size() == 1) {
link.domainModified = true;
modifiedDomainLinks.add(link);
if(modifiedDomainLinks.size() == 1) {