blob: 01ff47def5dd076ae4b48ec30bf9c9097b8ea582 [file] [log] [blame]
/*
* Copyright (c) 2006 Borland Software Corporation
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Artem Tikhomirov (Borland) - initial API and implementation
*/
package org.eclipse.gmf.internal.bridge;
import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
import org.eclipse.gmf.codegen.gmfgen.GenLink;
import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
/**
* Doesn't expect <code>get(whatever)</code> to be invoked more then once for the same argument instance.
* @author artem
*/
public class NaiveIdentifierDispenser implements VisualIdentifierDispenser {
protected static final int CANVAS_COUNT_BASE = 79;
protected static final int NODE_COUNT_BASE = 1000;
protected static final int CHILD_COUNT_BASE = 2000;
protected static final int LINK_COUNT_BASE = 3000;
protected static final int LABEL_COUNT_BASE = 4000;
protected static final int COMPARTMENT_COUNT_BASE = 5000;
protected static final int TOOL_GROUP_COUNT_BASE = 0;
private int myNodeCount = 0;
private int myLinkCount = 0;
private int myChildCount = 0;
private int myLabelCount = 0;
private int myCompartmentCount = 0;
private int myToolGroupCount = 0;
public NaiveIdentifierDispenser() {
}
public int get(GenDiagram diagram) {
return CANVAS_COUNT_BASE;
}
public int get(GenTopLevelNode node) {
return NODE_COUNT_BASE + (++myNodeCount);
}
public int get(GenNodeLabel nodeLabel) {
return LABEL_COUNT_BASE + (++myLabelCount);
}
public int get(GenLink link) {
return LINK_COUNT_BASE + (++myLinkCount);
}
public int get(GenChildNode childNode) {
return CHILD_COUNT_BASE + (++myChildCount );
}
public int get(GenCompartment compartment) {
return COMPARTMENT_COUNT_BASE + (++myCompartmentCount);
}
public int get(GenLinkLabel label) {
return get((GenNodeLabel) null);
}
public int get(ToolGroup toolGroup) {
return TOOL_GROUP_COUNT_BASE + (++myToolGroupCount);
}
}