blob: 0391cbb505ba4147160cc1ba55dbebda035667bf [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011-2016 The University of York.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License, v. 2.0 are satisfied: GNU General Public License, version 3.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-3.0
*
* Contributors:
* Antonio Garcia-Dominguez - initial API and implementation
******************************************************************************/
package org.eclipse.hawk.graph.sampleListener;
import java.util.Arrays;
import org.eclipse.hawk.core.IModelIndexer;
import org.eclipse.hawk.core.VcsCommitItem;
import org.eclipse.hawk.core.graph.IGraphChangeListener;
import org.eclipse.hawk.core.graph.IGraphNode;
import org.eclipse.hawk.core.model.IHawkClass;
import org.eclipse.hawk.core.model.IHawkObject;
import org.eclipse.hawk.core.model.IHawkPackage;
public class ExampleListener implements IGraphChangeListener {
@Override
public void synchroniseStart() {
// System.out.println("synchronize started");
}
@Override
public void synchroniseEnd() {
// System.out.println("synchronize ended");
}
@Override
public void changeStart() {
// System.out.println("change started");
}
@Override
public void changeSuccess() {
// System.out.println("change succeeded");
}
@Override
public void changeFailure() {
// System.out.println("change failed");
}
@Override
public void metamodelAddition(IHawkPackage pkg, IGraphNode pkgNode) {
// System.out.println(String.format("metamodel %s added as node %s",
// pkg.getNsURI(), pkgNode.getId()));
}
@Override
public void classAddition(IHawkClass cls, IGraphNode clsNode) {
// System.out.println(String.format("class %s added as node %s",
// cls.getName(), clsNode.getId()));
}
@Override
public void fileAddition(VcsCommitItem s, IGraphNode fileNode) {
// System.out.println(String.format("rev %s: file %s added as node %s",
// s.getCommit().getRevision(), s.getPath(), fileNode.getId()));
}
@Override
public void fileRemoval(VcsCommitItem s, IGraphNode fileNode) {
// System.out.println(String.format("rev %s: file %s removed as node %s",
// s.getCommit().getRevision(), s.getPath(), fileNode.getId()));
}
@Override
public void modelElementAddition(VcsCommitItem s, IHawkObject element,
IGraphNode elementNode, boolean isTransient) {
// System.out.println(String.format("rev %s: instance of %s in %s added as node %s",
// s.getCommit().getRevision(), element.getType().getName(),
// s.getPath(), elementNode.getId()));
}
@Override
public void modelElementRemoval(VcsCommitItem s, IGraphNode elementNode,
boolean isTransient) {
// System.out.println(String.format("rev %s: model element in node %s removed",
// s.getCommit().getRevision(), elementNode.getId()));
}
@Override
public void modelElementAttributeUpdate(VcsCommitItem s,
IHawkObject eObject, String attrName, Object oldValue,
Object newValue, IGraphNode elementNode, boolean isTransient) {
//String oldv = convertToString(oldValue);
//String newv = convertToString(newValue);
// if (oldv.equals("1098.0") || oldv.equals("1097.0") ||
// newv.equals("1098.0") || newv.equals("1097.0"))
// System.out.println(String.format("rev %s: attribute %s in node %s changed from '%s' to '%s'",
// s
// .getCommit().getRevision(), attrName, elementNode.getId(), oldv,
// newv)
// + " [id:"+
// elementNode.getProperty(IModelIndexer.IDENTIFIER_PROPERTY)+ "]");
}
protected String convertToString(Object value) {
String ret = value + "";
if (value != null) {
Class<?> c = value.getClass().getComponentType();
if (c != null) {
if (value instanceof Object[])
ret = Arrays.toString((Object[]) value);
else if (value instanceof byte[])
ret = Arrays.toString((byte[]) value);
else
System.err
.println("convertToString failed, value is of type: "
+ value.getClass());
}
}
return ret;
}
@Override
public void modelElementAttributeRemoval(VcsCommitItem s,
IHawkObject eObject, String attrName, IGraphNode node,
boolean isTransient) {
// System.out.println(String.format("rev %s: attribute %s in node %s unset",
// s.getCommit().getRevision(), attrName, node.getId()));
}
@Override
public void referenceAddition(VcsCommitItem s, IGraphNode source,
IGraphNode destination, String edgelabel, boolean isTransient) {
// System.out.println(String.format("rev %s: reference '%s' from node %s to %s added",
// s.getCommit().getRevision(), edgelabel, source.getId(),
// destination.getId()));
}
@Override
public void referenceRemoval(VcsCommitItem s, IGraphNode source,
IGraphNode destination, String edgelabel, boolean isTransient) {
// System.out.println(String.format("rev %s: reference '%s' from node %s to %s removed",
// s.getCommit().getRevision(), edgelabel, source.getId(),
// destination.getId()));
}
@Override
public String getName() {
return "ExampleListener";
}
@Override
public void setModelIndexer(IModelIndexer m) {
// not used
}
}