package net.sourceforge.phpeclipse.builder;

import net.sourceforge.phpeclipse.obfuscator.PHPIdentifier;

/**
 * @author khartlage
 *
 */
public class PHPIdentifierLocation extends PHPIdentifier {
  private String fClassname;
  private String fFilename;
	private int fOffset;
	private int fPHPDocLength;
	private int fPHPDocOffset;
	private String fUsage;

  public PHPIdentifierLocation(String identifier, int type, String filename) {
    this(identifier, type, filename, null);
  }

	public PHPIdentifierLocation(String identifier, int type, String filename, String classname) {
		super(identifier, type);
		fFilename = filename;
		fClassname = classname;
		fOffset = -1;
		fPHPDocLength = -1;
		fPHPDocOffset = -1;
		fUsage = null;
	}
  /* (non-Javadoc)
   * @see java.lang.Object#equals(java.lang.Object)
   */
  public boolean equals(Object obj) {
		if (!(obj instanceof PHPIdentifierLocation)) {
			return false;
		}
    return super.equals(obj)&&fFilename.equals(((PHPIdentifierLocation)obj).fFilename);
  }

  /**
   * @return
   */
  public String getClassname() {
    return fClassname;
  }

  /**
   * @return
   */
  public String getFilename() {
    return fFilename;
  }

  /**
   * @return
   */
  public int getOffset() {
    return fOffset;
  }

  /**
   * @return
   */
  public int getPHPDocLength() {
    return fPHPDocLength;
  }

  /**
   * @return
   */
  public int getPHPDocOffset() {
    return fPHPDocOffset;
  }

  /**
   * @return
   */
  public String getUsage() {
    return fUsage;
  }

  /**
   * @param string
   */
  public void setClassname(String string) {
    fClassname = string;
  }

  /**
   * @param string
   */
  public void setFilename(String string) {
    fFilename = string;
  }

  /**
   * @param i
   */
  public void setOffset(int i) {
    fOffset = i;
  }

  /**
   * @param i
   */
  public void setPHPDocLength(int i) {
    fPHPDocLength = i;
  }

  /**
   * @param i
   */
  public void setPHPDocOffset(int i) {
    fPHPDocOffset = i;
  }

  /**
   * @param string
   */
  public void setUsage(String string) {
    fUsage = string;
  }

  /* (non-Javadoc)
   * @see java.lang.Object#toString()
   */
  public String toString() {
    return super.toString()+"\n"+fFilename;
  }

}