/***************************************************************************** * Copyright (c) 2014 CEA LIST. * * * 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: * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation * *****************************************************************************/ package org.eclipse.gmf.tooling.runtime.linklf; import org.eclipse.gmf.runtime.notation.IdentityAnchor; /** * * Helper used for identity anchor * */ public class IdentityAnchorHelper { /** * the char starting an id of {@link IdentityAnchor} */ public static final char START_ID = '('; /** * the char ending an id of {@link IdentityAnchor} */ public static final char END_ID = ')'; /** * the char separating percentage in ids of {@link IdentityAnchor} */ public static final char X_Y_SEPARATOR = ','; /** * the char separating percentage as string in ids of {@link IdentityAnchor} */ public static final String X_Y_SEPARATOR_AS_STRING = new String(new char[]{ X_Y_SEPARATOR }); /** * * Constructor. * */ private IdentityAnchorHelper() { //to prevent instanciation } /** * * @param anchor * an anchor * @return * the value of x percentage */ public static final double getXPercentage(final IdentityAnchor anchor) { String id = anchor.getId(); id = id.substring(1, id.indexOf(X_Y_SEPARATOR_AS_STRING)); return Double.parseDouble(id); } /** * * @param anchor * an anchor * @return * the value of y percentage */ public static final double getYPercentage(final IdentityAnchor anchor) { String id = anchor.getId(); id = id.substring(id.indexOf(X_Y_SEPARATOR_AS_STRING) + 1, id.length() - 1); return Double.parseDouble(id); } /** * * @param percentageOnX * the percentage on x * @param percentageOnY * the percentage on y * @return * the string representing the new id for an anchor */ public static final String createNewAnchorIdValue(final double percentageOnX, final double percentageOnY) { final StringBuffer buffer = new StringBuffer(); buffer.append(START_ID); buffer.append(Double.toString(percentageOnX)); buffer.append(X_Y_SEPARATOR_AS_STRING); buffer.append(Double.toString(percentageOnY)); buffer.append(END_ID); return buffer.toString(); } }