This commit is contained in:
sefftinge 2008-10-10 08:35:56 +00:00
parent 333ed4a857
commit bc8ef04c02
18 changed files with 119 additions and 58 deletions

View file

@ -1,6 +1,7 @@
package org.eclipse.xtext.util;
import java.util.Collection;
import java.util.Iterator;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.ENamedElement;
@ -17,8 +18,7 @@ public class EmfFormater {
StringBuffer buf = new StringBuffer();
EObject eobj = (EObject) obj;
buf.append(eobj.eClass().getName() + " {\n");
for (EStructuralFeature f : eobj.eClass()
.getEAllStructuralFeatures()) {
for (EStructuralFeature f : eobj.eClass().getEAllStructuralFeatures()) {
if (!eobj.eIsSet(f))
continue;
String fType = "unknown";
@ -28,13 +28,15 @@ public class EmfFormater {
if (r.isContainment()) {
val = objToStr(eobj.eGet(f), innerIdent);
fType = "cref";
} else {
}
else {
val = refToStr(eobj, r);
fType = "ref";
}
} else if (f instanceof EAttribute) {
}
else if (f instanceof EAttribute) {
fType = "attr";
// System.out.println(Msg.create("Path:").path(eobj));
// logger.debug(Msg.create("Path:").path(eobj));
Object at = eobj.eGet(f);
if (eobj != at)
val = objToStr(at, innerIdent);
@ -43,8 +45,7 @@ public class EmfFormater {
}
String vType = f.getEType().getName();
String name = f.getName();
buf.append(innerIdent + fType + " " + vType + " " + name + " "
+ val + "\n");
buf.append(innerIdent + fType + " " + vType + " " + name + " " + val + "\n");
}
buf.append(ident + "}");
return buf.toString();
@ -62,17 +63,29 @@ public class EmfFormater {
return "null";
}
@SuppressWarnings("unchecked")
private static String refToStr(EObject obj, EReference ref) {
StringBuffer buf = new StringBuffer();
Object o = obj.eGet(ref);
if (o instanceof EObject) {
EObject eo = (EObject) o;
StringBuffer buf = new StringBuffer();
if (eo instanceof ENamedElement)
buf.append("'" + ((ENamedElement) eo).getName() + "' ");
buf.append("ref:" + EcoreUtil.getURI(eo));
return buf.toString();
}
if (o instanceof Collection) {
buf.append("[");
for (Iterator i = ((Collection) o).iterator(); i.hasNext();) {
Object item = (Object) i.next();
buf.append(EcoreUtil.getURI((EObject) item));
if (i.hasNext())
buf.append(", ");
}
buf.append("]");
return buf.toString();
}
return "?????";
}
}

View file

@ -30,7 +30,7 @@ public class EmfStructureComparator {
if(!isSameStructure(left, right)) {
Assert.fail(errorMessage);
}
//System.out.println("" + counter + " elements compared");
//logger.debug("" + counter + " elements compared");
}
public boolean isSameStructure(EObject left, EObject right) {

View file

@ -12,6 +12,7 @@ import static org.eclipse.xtext.parsetree.NodeUtil.dumpCompositeNodeInfo;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.Action;
@ -30,6 +31,8 @@ import org.eclipse.xtext.util.Strings;
*/
public class PartialParsingPointers {
private static final Logger logger = Logger.getLogger(PartialParsingPointers.class);
private CompositeNode rootNode;
private int length;
private int offset;
@ -195,16 +198,19 @@ public class PartialParsingPointers {
public void dump() {
dump(getDefaultReplaceRootNode());
}
public void dump(CompositeNode replaceRootNode) {
System.out.println("Parsing " + findReparseRegion(replaceRootNode));
System.out.println("with rule " + findEntryRuleName(replaceRootNode));
if (!logger.isDebugEnabled())
return;
logger.debug("Parsing " + findReparseRegion(replaceRootNode));
logger.debug("with rule " + findEntryRuleName(replaceRootNode));
dumpCompositeNodeInfo("Replacing node ", replaceRootNode);
System.out.println("Replacing AST element " + findASTReplaceElement(replaceRootNode).eClass().getName());
logger.debug("Replacing AST element " + findASTReplaceElement(replaceRootNode).eClass().getName());
EObject astParentElement = findASTParentElement(replaceRootNode);
String astParentElementClassName = astParentElement != null ? astParentElement.eClass().getName() : "null";
System.out.println("in AST parent reference " + astParentElementClassName + "."
logger.debug("in AST parent reference " + astParentElementClassName + "."
+ Strings.notNull(findASTContainmentFeatureName(replaceRootNode)));
System.out.println();
logger.debug("");
}
}

View file

@ -39,7 +39,7 @@ public class NodeAdapter implements Adapter {
// }
// }
// } else {
// System.out.println(n);
// logger.debug(n);
// }
}

View file

@ -11,6 +11,7 @@ package org.eclipse.xtext.parsetree;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
@ -20,6 +21,8 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
*/
public class NodeUtil {
private static final Logger logger = Logger.getLogger(NodeUtil.class);
public static NodeAdapter getNodeAdapter(EObject obj) {
return (NodeAdapter) EcoreUtil.getAdapter(obj.eAdapters(), AbstractNode.class);
}
@ -103,7 +106,7 @@ public class NodeUtil {
}
}
}
public static void dumpCompositeNodeInfo(String indent, CompositeNode node) {
EObject grammarElement = node.getGrammarElement();
String name;
@ -113,12 +116,12 @@ public class NodeUtil {
name = grammarElement.getClass().getSimpleName();
}
String astElementAsString = (node.getElement() == null) ? "null" : node.getElement().eClass().getName();
System.out.print(indent + name + " : " + node.serialize()
+ " -> " + astElementAsString + " la={ ");
String line = indent + name + " : " + node.serialize()
+ " -> " + astElementAsString + " la={ ";
for (LeafNode lookaheadNode : node.getLookaheadLeafNodes()) {
System.out.print("\""+ lookaheadNode.getText() +"\" ");
line += "\""+ lookaheadNode.getText() +"\" ";
}
System.out.println("} (" + node.getOffset() + ", " + node.getLength() + ")");
logger.debug("} (" + node.getOffset() + ", " + node.getLength() + ")");
}
public static AbstractNode findLeafNodeAtOffset(CompositeNode parseTreeRootNode, int offset) {

View file

@ -11,6 +11,7 @@ package org.eclipse.xtext.parsetree;
import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.AbstractElement;
@ -33,6 +34,9 @@ import org.eclipse.xtext.RuleCall;
*/
public final class ParseTreeUtil {
private static final Logger logger = Logger.getLogger(ParseTreeUtil.class);
/**
*
* @param abstractNode
@ -60,7 +64,7 @@ public final class ParseTreeUtil {
return abstractNodeSet;
}
/**
* Dump the composite structure (parsetree) of the given node.
*
@ -69,7 +73,7 @@ public final class ParseTreeUtil {
*/
public static final void dumpNode(AbstractNode abstractNode) {
assertParameterNotNull(abstractNode, "abstractNode");
System.out.println("dump parsetree with root node '" + EcoreUtil.getIdentification(abstractNode) + "'");
logger.debug("dump parsetree with root node '" + EcoreUtil.getIdentification(abstractNode) + "'");
doDumpNode(abstractNode, "\t");
}
@ -277,7 +281,7 @@ public final class ParseTreeUtil {
// CompositeNode compositeNode = (CompositeNode) abstractNode;
System.out.println(indentString + "line '" + abstractNode.getLine() + "' offset '"
logger.debug(indentString + "line '" + abstractNode.getLine() + "' offset '"
+ abstractNode.getOffset() + "' length '" + abstractNode.getLength() + "' grammar-hierarchy ("
+ dumpParentHierarchy(abstractNode) + ")");
@ -287,7 +291,7 @@ public final class ParseTreeUtil {
// ommit hidden channel
if (!leafNode.isHidden()) {
System.out.println(indentString + "'" + "line '" + leafNode.getLine() + "' offset '"
logger.debug(indentString + "'" + "line '" + leafNode.getLine() + "' offset '"
+ leafNode.getOffset() + " length '" + leafNode.getLength() + "' "
+ (leafNode.getFeature() != null ? leafNode.getFeature() + " = " : "") + " text '"
+ leafNode.getText() + "' grammar-hierarchy (" + dumpParentHierarchy(leafNode) + ")");

View file

@ -3,6 +3,7 @@ package org.eclipse.xtext.parsetree.reconstr.callbacks;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.AbstractElement;
import org.eclipse.xtext.Assignment;
@ -17,6 +18,8 @@ import org.eclipse.xtext.service.Inject;
public class SimpleSerializingCallback extends
DefaultParsetreeReconstructorCallback {
static final Logger logger = Logger.getLogger(SimpleSerializingCallback.class);
@Inject
protected IValueConverterService converterService;
@ -46,9 +49,9 @@ public class SimpleSerializingCallback extends
outputHasStarted = false;
out = output;
}
public void crossRefCall(IInstanceDescription current, CrossReference call) {
System.out.println("crossRefCall(" + call + ")");
logger.debug("crossRefCall(" + call + ")");
Assignment ass = GrammarUtil.containingAssignment(call);
if (ass == null)
throw new IllegalStateException("Unassigned cross reference "

View file

@ -1,9 +1,12 @@
package org.eclipse.xtext.crossrefs;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.tests.AbstractGeneratorTest;
public class CrossRefTest extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(CrossRefTest.class);
@Override
protected void setUp() throws Exception {
super.setUp();
@ -12,7 +15,7 @@ public class CrossRefTest extends AbstractGeneratorTest {
public void testSimple() throws Exception {
EObject model = getModel("type A extends B type B extends A");
System.out.println(invokeWithXtend("types.collect(e|e.name+' '+e.extends.name).toString(',')", model));
logger.debug(invokeWithXtend("types.collect(e|e.name+' '+e.extends.name).toString(',')", model));
assertWithXtend("'B'", "types.first().extends.name", model);
assertWithXtend("types.first()", "types.first().extends.extends", model);
}

View file

@ -2,6 +2,7 @@ package org.eclipse.xtext.grammarinheritance;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
@ -20,6 +21,8 @@ import org.eclipse.xtext.resource.metamodel.Xtext2EcoreTransformer;
import org.eclipse.xtext.tests.AbstractGeneratorTest;
public class ToEcoreTrafoTest extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(ToEcoreTrafoTest.class);
@Override
protected void setUp() throws Exception {
super.setUp();
@ -32,14 +35,14 @@ public class ToEcoreTrafoTest extends AbstractGeneratorTest {
if (!r.getParseResult().getParseErrors().isEmpty()) {
List<SyntaxError> errors = r.getParseResult().getParseErrors();
for (SyntaxError syntaxError : errors) {
System.out.println(syntaxError.getMessage() + " - " + syntaxError.getNode().getLine());
logger.debug(syntaxError.getMessage() + " - " + syntaxError.getNode().getLine());
}
fail();
}
List<LexerRule> lexerRules = GrammarUtil.allLexerRules(element);
assertEquals(8, lexerRules.size());
for (LexerRule lexerRule : lexerRules) {
System.out.println(lexerRule.getName());
logger.debug(lexerRule.getName());
}
Xtext2EcoreTransformer transformer = new Xtext2EcoreTransformer();
@ -54,7 +57,7 @@ public class ToEcoreTrafoTest extends AbstractGeneratorTest {
List<LexerRule> lexerRules = GrammarUtil.allLexerRules(element);
assertEquals(8, lexerRules.size());
for (LexerRule lexerRule : lexerRules) {
System.out.println(lexerRule.getName());
logger.debug(lexerRule.getName());
}
Xtext2EcoreTransformer transformer = new Xtext2EcoreTransformer();
List<EPackage> list = transformer.transform(element);

View file

@ -4,17 +4,20 @@ import junit.framework.TestCase;
import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CommonTokenStream;
import org.apache.log4j.Logger;
import org.eclipse.xtext.testlanguages.parser.internal.InternalSimpleExpressionsLexer;
public class LexerErrorTest extends TestCase {
public void testLexerError() throws Exception {
private static final Logger logger = Logger.getLogger(LexerErrorTest.class);
public void testLexerError() throws Exception {
String model = "a /* uncomplete comment *";
InternalSimpleExpressionsLexer lexer = new InternalSimpleExpressionsLexer();
lexer.setCharStream(new ANTLRStringStream(model));
CommonTokenStream stream = new CommonTokenStream(lexer);
for(Object token : stream.getTokens()) {
System.out.println(token);
logger.debug(token);
}
}
}

View file

@ -8,6 +8,7 @@
*******************************************************************************/
package org.eclipse.xtext.parseerrorhandling;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.XtextGrammarTestStandaloneSetup;
@ -20,6 +21,8 @@ import org.eclipse.xtext.tests.AbstractGeneratorTest;
public class ParseErrorHandlingTest extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(ParseErrorHandlingTest.class);
@Override
protected void setUp() throws Exception {
super.setUp();
@ -59,7 +62,7 @@ public class ParseErrorHandlingTest extends AbstractGeneratorTest {
public void testParseError4() throws Exception {
Object object = getModel("language a import 'holla' foo returns y::Z : name=ID # 'foo'; bar : 'stuff'");
//System.out.println(errors);
//logger.debug(errors);
assertWithXtend("'ID'", "rules.first().eAllContents.typeSelect(XtextTest::RuleCall).first().name", object);
assertWithXtend("null", "rules.first().eAllContents.typeSelect(XtextTest::Keyword).first().name", object);
assertWithXtend("'stuff'", "rules.get(1).eAllContents.typeSelect(XtextTest::Keyword).first().value", object);
@ -92,7 +95,7 @@ public class ParseErrorHandlingTest extends AbstractGeneratorTest {
EObject object = getModel(model);
CompositeNode node = NodeUtil.getRootNode(object);
assertEquals(1,node.allSyntaxErrors().size());
System.out.println(node.allSyntaxErrors().get(0).getMessage());
logger.debug(node.allSyntaxErrors().get(0).getMessage());
}
}

View file

@ -8,6 +8,7 @@
*******************************************************************************/
package org.eclipse.xtext.parser;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtext.parser.impl.PartialParsingPointers;
import org.eclipse.xtext.parser.impl.PartialParsingUtil;
@ -23,6 +24,8 @@ import org.eclipse.xtext.testlanguages.SimpleExpressionsStandaloneSetup;
*/
public class PartialParserReplaceTest extends AbstractPartialParserTest {
private static final Logger logger = Logger.getLogger(PartialParserReplaceTest.class);
public void testExpression() throws Exception {
with(SimpleExpressionsStandaloneSetup.class);
String model = "(a+b+c)*(c/d)";
@ -58,7 +61,7 @@ public class PartialParserReplaceTest extends AbstractPartialParserTest {
IParseResult partiallyReparse = PartialParsingUtil.reparse(getParser(), rootNode, offset, length, change);
EList<SyntaxError> errors = partiallyReparse.getRootNode().allSyntaxErrors();
for (SyntaxError syntaxError : errors) {
System.out.println(model + offset + length + change + ":" + syntaxError.getMessage());
logger.debug(model + offset + length + change + ":" + syntaxError.getMessage());
}
assertTrue(partiallyReparse.getRootNode().allSyntaxErrors().isEmpty());
String expectedReparseModel = model.substring(0, offset) + change + model.substring(offset + length);

View file

@ -12,6 +12,7 @@ import static org.eclipse.xtext.parsetree.NodeUtil.dumpCompositeNodes;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.xtext.parser.impl.PartialParsingPointers;
@ -26,6 +27,8 @@ import org.eclipse.xtext.testlanguages.SimpleExpressionsStandaloneSetup;
*
*/
public class PartialParsingPointerTest extends AbstractPartialParserTest {
private static final Logger logger = Logger.getLogger(PartialParsingPointerTest.class);
public void testExpression() throws Exception {
with(SimpleExpressionsStandaloneSetup.class);
@ -60,7 +63,7 @@ public class PartialParsingPointerTest extends AbstractPartialParserTest {
with(LookaheadLanguageStandaloneSetup.class);
String model = "bar a foo bar c b d foo bar b c";
for (int i = 0; i < model.length(); ++i) {
System.out.println(i);
logger.debug(i);
PartialParsingPointers parsingPointers = calculatePartialParsingPointers(model, i, 1);
if (i < 3) {
checkParseRegionPointers(parsingPointers, model, "Entry", "Entry", "Entry", null, null);
@ -106,15 +109,16 @@ public class PartialParsingPointerTest extends AbstractPartialParserTest {
CompositeNode rootNode = getRootNode(model);
if (DEBUG) {
dumpCompositeNodes("", rootNode);
System.out.println(model);
logger.debug(model);
String line = "";
for (int k = 0; k < changeRegionStart; ++k) {
System.out.print('#');
line += "#";
}
System.out.print(model.substring(changeRegionStart, changeRegionStart + changeRegionSize));
line += model.substring(changeRegionStart, changeRegionStart + changeRegionSize);
for (int k = changeRegionStart + changeRegionSize; k < model.length(); ++k) {
System.out.print('#');
line += "#";
}
System.out.println();
logger.debug(line);
}
PartialParsingPointers partialParsingPointers = PartialParsingUtil.calculatePartialParsingPointers(rootNode,
changeRegionStart, changeRegionSize);

View file

@ -11,6 +11,7 @@ package org.eclipse.xtext.parsetree.reconstr;
import java.io.ByteArrayOutputStream;
import java.util.Collections;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
@ -22,6 +23,8 @@ import org.eclipse.xtext.util.EmfFormater;
public class ComplexReconstrTest extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(ComplexReconstrTest.class);
@Override
protected void setUp() throws Exception {
super.setUp();
@ -37,7 +40,7 @@ public class ComplexReconstrTest extends AbstractGeneratorTest {
if (x instanceof ParserRule) {
ParserRule pr = (ParserRule) x;
if (pr.getName().toLowerCase().contains("tricky")) {
System.out.println(EmfFormater.objToStr(pr, ""));
logger.debug(EmfFormater.objToStr(pr, ""));
}
}
}
@ -54,7 +57,7 @@ public class ComplexReconstrTest extends AbstractGeneratorTest {
private String parseAndSerialize(String model) throws Exception {
EObject result = (EObject) getModel(model);
System.out.println(EmfFormater.objToStr(result, ""));
logger.debug(EmfFormater.objToStr(result, ""));
IParseTreeConstructor con = getParseTreeConstructor();
ByteArrayOutputStream out = new ByteArrayOutputStream();
con.serialize(out, result, Collections.emptyMap());

View file

@ -11,6 +11,7 @@ package org.eclipse.xtext.parsetree.reconstr;
import java.io.ByteArrayOutputStream;
import java.util.Collections;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parsetree.NodeUtil;
import org.eclipse.xtext.testlanguages.SimpleExpressionsStandaloneSetup;
@ -18,6 +19,8 @@ import org.eclipse.xtext.tests.AbstractGeneratorTest;
import org.eclipse.xtext.util.EmfFormater;
public class SimpleReconstrTest extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(SimpleReconstrTest.class);
public void testSimple1() throws Exception {
String model = "a b";
@ -41,10 +44,10 @@ public class SimpleReconstrTest extends AbstractGeneratorTest {
private String parseAndSerialize(String model) throws Exception {
EObject result = (EObject) getModel(model);
System.out.println(EmfFormater.objToStr(result, ""));
System.out.println(EmfFormater.objToStr(NodeUtil.getRootNode(result),
logger.debug(EmfFormater.objToStr(result, ""));
logger.debug(EmfFormater.objToStr(NodeUtil.getRootNode(result),
""));
System.out.println(EmfFormater.objToStr(NodeUtil.getRootNode(result)
logger.debug(EmfFormater.objToStr(NodeUtil.getRootNode(result)
.getLeafNodes(), ""));
IParseTreeConstructor con = getParseTreeConstructor();

View file

@ -9,6 +9,7 @@
package org.eclipse.xtext.reference;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtext.parsetree.CompositeNode;
import org.eclipse.xtext.parsetree.LeafNode;
@ -20,6 +21,8 @@ import org.eclipse.xtext.tests.AbstractGeneratorTest;
*
*/
public class LeafNodeBug_234132_Test extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(LeafNodeBug_234132_Test.class);
public void testLeafNodeBug() throws Exception {
with(ReferenceGrammarStandaloneSetup.class);
@ -27,10 +30,10 @@ public class LeafNodeBug_234132_Test extends AbstractGeneratorTest {
CompositeNode rootNode = getRootNode(model);
EList<LeafNode> leafNodes = rootNode.getLeafNodes();
System.out.println("Model length=" + model.length());
logger.debug("Model length=" + model.length());
for (LeafNode leafNode : leafNodes) {
String text = leafNode.getText();
System.out.println("Leaf node" + leafNode.toString() + " offset=" + leafNode.getOffset() + " length=" + leafNode.getLength() + " text=" + ((text != null)? text : ""));
logger.debug("Leaf node" + leafNode.toString() + " offset=" + leafNode.getOffset() + " length=" + leafNode.getLength() + " text=" + ((text != null)? text : ""));
assertTrue(leafNode.getLength() + leafNode.getOffset() <= model.length());
assertEquals(model.substring(leafNode.getOffset(), leafNode.getOffset() + leafNode.getLength()), leafNode.getText());
}

View file

@ -15,6 +15,7 @@ import static org.easymock.EasyMock.verify;
import java.util.List;
import org.apache.log4j.Logger;
import org.easymock.EasyMock;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EAttribute;
@ -35,6 +36,7 @@ import org.eclipse.xtext.util.EmfFormater;
* @see http://wiki.eclipse.org/Xtext/Documentation#Meta-Model_Inference
*/
public class Xtext2EcoreTransformerTests extends AbstractGeneratorTest {
private static final Logger logger = Logger.getLogger(Xtext2EcoreTransformerTests.class);
private Xtext2EcoreTransformer xtext2EcoreTransformer;
private ErrorAcceptor errorAcceptorMock;
@ -697,7 +699,7 @@ public class Xtext2EcoreTransformerTests extends AbstractGeneratorTest {
"Number : value=INT";
EPackage ePackage = getEPackageFromGrammar(grammar);
EClass classifier = (EClass) ePackage.getEClassifier("Ex");
System.out.println(EmfFormater.objToStr(ePackage, ""));
logger.debug(EmfFormater.objToStr(ePackage, ""));
assertEquals(0,classifier.getEStructuralFeatures().size());
}
}

View file

@ -15,6 +15,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.eclipse.emf.compare.diff.metamodel.AttributeChange;
import org.eclipse.emf.compare.diff.metamodel.DiffElement;
import org.eclipse.emf.compare.diff.metamodel.DiffGroup;
@ -39,6 +40,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
*/
public class EcoreModelComparator {
private static final Logger logger = Logger.getLogger(EcoreModelComparator.class);
private Map<String, Object> options;
private IMatchEngine matchEngine;
private List<EStructuralFeature> ignoredFeatures = new ArrayList<EStructuralFeature>();
@ -122,18 +124,18 @@ public class EcoreModelComparator {
if (diffElement instanceof AttributeChange) {
AttributeChange change = (AttributeChange) diffElement;
EAttribute attribute = change.getAttribute();
System.err.println("Detected attribute difference: " + attribute.getName());
System.err.println("\t" + change.getLeftElement());
System.err.println("\t" + change.getRightElement());
logger.error("Detected attribute difference: " + attribute.getName());
logger.error("\t" + change.getLeftElement());
logger.error("\t" + change.getRightElement());
} else if (diffElement instanceof ReferenceChange) {
ReferenceChange change = (ReferenceChange) diffElement;
EReference reference = change.getReference();
System.err.println("Detected reference difference: " + reference.getName());
System.err.println("\t" + change.getLeftElement() +" "+reference.getName()+" = "+change.getLeftElement().eGet(reference));
System.err.println("\t" + change.getRightElement()+" "+reference.getName()+" = "+change.getRightElement().eGet(reference));
logger.error("Detected reference difference: " + reference.getName());
logger.error("\t" + change.getLeftElement() +" "+reference.getName()+" = "+change.getLeftElement().eGet(reference));
logger.error("\t" + change.getRightElement()+" "+reference.getName()+" = "+change.getRightElement().eGet(reference));
} else {
// TODO: add more sysouts here...
System.err.println(diffElement.toString());
// TODO: add more logging here...
logger.error(diffElement.toString());
}
}
}