/*******************************************************************************
 * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
 * Distributed under license by Red Hat, Inc. All rights reserved.
 * This program is 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:
 *     Exadel, Inc. and Red Hat, Inc. - initial API and implementation
 ******************************************************************************/ 
package org.jboss.tools.common.text.ext.hyperlink;

import org.eclipse.jface.text.TypedRegion;

public class HyperlinkRegion extends TypedRegion implements IHyperlinkRegion {
	String axis;
	String contentType;
	
	public HyperlinkRegion(int propStart, int propLength) {
		this(propStart, propLength, null, null, null);
	}

	public HyperlinkRegion(int start, int length, String axis, String contentType, String type) {
		super(start,length,type);
		this.axis = axis;
		this.contentType = contentType;
	}

	public String getAxis() {
		return axis;
	}

	public String getContentType() {
		return contentType;
	}
	
	public boolean equals(Object arg) {
		if (!(arg instanceof IHyperlinkRegion)) return false;
		IHyperlinkRegion region = (IHyperlinkRegion)arg;
		return getOffset() == region.getOffset() 
			&& getLength() == region.getLength()
			&& areArqumentsEqual(getContentType(), region.getContentType())
			&& areArqumentsEqual(getAxis(), region.getAxis());
	}
	
	private boolean areArqumentsEqual(String s1, String s2) {
		return (s1 == null) ? s2 == null : s1.equals(s2);
	}

	public String toString() {
		return "IHyperlinkRegion [" + getOffset() +", " + getLength()+ "]:[[" + getContentType() + "]/[" + getType() + "]" + getAxis(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
	}

}
