Package edu.umd.cloud9.example.hits

Source Code of edu.umd.cloud9.example.hits.HITSNode

package edu.umd.cloud9.example.hits;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

import org.apache.hadoop.io.Writable;

import edu.umd.cloud9.io.array.ArrayListOfIntsWritable;

/**
*
* <p>Representation of a Hubs and Authorities Node for HITS algorithm computation</p>
* <p> lets try git stuff</p>
*
* @author Mike McGrath
*
*/


public class HITSNode implements Writable {
  public static final int TYPE_HUB_COMPLETE = 1;
  public static final int TYPE_HUB_MASS = 3;
  public static final int TYPE_HUB_STRUCTURE = 5;
  public static final int TYPE_AUTH_COMPLETE = 2;
  public static final int TYPE_AUTH_MASS = 4;
  public static final int TYPE_AUTH_STRUCTURE = 6;
  public static final int TYPE_NODE_COMPLETE = 7;
  public static final int TYPE_NODE_MASS = 8;
  public static final int TYPE_NODE_STRUCTURE = 9;

  private int mType;
  private int mNodeId;
  private float mHRank;
  private float mARank;
  private ArrayListOfIntsWritable mInlinks = new ArrayListOfIntsWritable();
  private ArrayListOfIntsWritable mOutlinks = new ArrayListOfIntsWritable();

  public HITSNode() {
  }

  public float getHRank() {
    return mHRank;
  }
 
  public float getARank() {
    return mARank;
  }

  public void setHRank(float r) {
    mHRank = r;
  }
 
  public void setARank(float r) {
    mARank = r;
  }

  public int getNodeId() {
    return mNodeId;
  }

  public void setNodeId(int n) {
    mNodeId = n;
  }

  public ArrayListOfIntsWritable getInlinks() {
    return mInlinks;
  }

  public void setInlinks(ArrayListOfIntsWritable l) {
    mInlinks = l;
  }
 
  public ArrayListOfIntsWritable getOutlinks() {
    return mOutlinks;
  }

  public void setOutlinks(ArrayListOfIntsWritable l) {
    mOutlinks = l;
  }

  public int getType() {
    return mType;
  }

  public void setType(int type) {
    if (type != TYPE_HUB_COMPLETE && type != TYPE_HUB_MASS
        && type != TYPE_HUB_STRUCTURE && type != TYPE_AUTH_COMPLETE
        && type != TYPE_AUTH_MASS && type != TYPE_AUTH_STRUCTURE
        && type != TYPE_NODE_MASS && type != TYPE_NODE_STRUCTURE
        && type != TYPE_NODE_COMPLETE)
      return;

    mType = type;
  }

  /**
   * Deserializes this object.
   *
   * @param in
   *            source for raw byte representation
   */
  public void readFields(DataInput in) throws IOException {
    mType = in.readByte();

    mNodeId = in.readInt();

    mInlinks = new ArrayListOfIntsWritable();
    mOutlinks = new ArrayListOfIntsWritable();
   
    if (mType == TYPE_HUB_MASS || mType == TYPE_NODE_MASS) {
      mHRank = in.readFloat();
      return;
    }
   
    if (mType == TYPE_AUTH_MASS || mType == TYPE_NODE_MASS) {
      mARank = in.readFloat();
      return;
    }

    if (mType == TYPE_HUB_COMPLETE || mType == TYPE_NODE_COMPLETE) {
      mHRank = in.readFloat();
    }
   
    if (mType == TYPE_AUTH_COMPLETE || mType == TYPE_NODE_COMPLETE) {
      mARank = in.readFloat();
    }

    //if (mType == TYPE_HUB_STRUCTURE || mType == TYPE_NODE_STRUCTURE || mType == TYPE_NODE_COMPLETE)
    //{
      //mOutlinks.readFields(in);
      mInlinks.readFields(in);
    //}
   
    //is this right -- inlinks go with hub and outlinks go with auth??? no -- other way around
    //if (mType == TYPE_AUTH_STRUCTURE || mType == TYPE_NODE_STRUCTURE || mType == TYPE_NODE_COMPLETE)
    //{
      mOutlinks.readFields(in);
      //mInlinks.readFields(in);
    //}
  }

  /**
   * Serializes this object.
   *
   * @param out
   *            where to write the raw byte representation
   */
  public void write(DataOutput out) throws IOException {
    out.writeByte((byte) mType);
    out.writeInt(mNodeId);

    if (mType == TYPE_HUB_MASS || mType == TYPE_NODE_MASS) {
      out.writeFloat(mHRank);
      return;
    }
   
    if (mType == TYPE_AUTH_MASS || mType == TYPE_NODE_MASS) {
      out.writeFloat(mARank);
      return;
    }

    if (mType == TYPE_HUB_COMPLETE || mType == TYPE_NODE_COMPLETE) {
      out.writeFloat(mHRank);
    }
   
    if (mType == TYPE_AUTH_COMPLETE || mType == TYPE_NODE_COMPLETE) {
      out.writeFloat(mARank);
    }

    mInlinks.write(out);
    mOutlinks.write(out);
  }

  public String toString() {
    StringBuilder s = new StringBuilder();

    s.append("{");
    s.append(mNodeId);
    s.append(" ");
    if (mType == TYPE_HUB_COMPLETE || mType == TYPE_HUB_MASS
        || mType == TYPE_HUB_STRUCTURE) {
      s.append("H");
    }
    else if (mType == TYPE_AUTH_COMPLETE || mType == TYPE_AUTH_MASS
        || mType == TYPE_AUTH_STRUCTURE) {
      s.append("A");
    } else if ( mType == TYPE_NODE_COMPLETE || mType == TYPE_NODE_MASS ||
        mType == TYPE_NODE_STRUCTURE ){
      s.append("N");
    } else {
      s.append("?");
    }
   
    if (mType == TYPE_HUB_COMPLETE || mType == TYPE_HUB_MASS || mType == TYPE_NODE_COMPLETE) {
      s.append(" H: " + mHRank);
    }
    if (mType == TYPE_AUTH_COMPLETE || mType == TYPE_AUTH_MASS || mType == TYPE_NODE_COMPLETE) {
      s.append(" A: " + mARank);
    }
   
    s.append(" ");

    if (mOutlinks == null) {
      s.append("Out: {}");
    } else {
      s.append("Out: {");
      for (int i = 0; i < mOutlinks.size(); i++) {
        s.append(mOutlinks.get(i));
        if (i < mOutlinks.size() - 1)
          s.append(", ");
      }
      s.append("}");
    }
   
    s.append(" ");

    if (mInlinks == null) {
      s.append("In: {}");
    } else {
      s.append("In: {");
      for (int i = 0; i < mInlinks.size(); i++) {
        s.append(mInlinks.get(i));
        if (i < mInlinks.size() - 1)
          s.append(", ");
      }
      s.append("} ");
    }

    s.append("}");
    return s.toString();
  }

}
TOP

Related Classes of edu.umd.cloud9.example.hits.HITSNode

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.