Add PriorityLines
This commit is contained in:
parent
1332ef414e
commit
c4a7a4988c
104
src/main/java/com/massivecraft/massivecore/PriorityLines.java
Normal file
104
src/main/java/com/massivecraft/massivecore/PriorityLines.java
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
package com.massivecraft.massivecore;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.Prioritized;
|
||||||
|
import com.massivecraft.massivecore.util.MUtil;
|
||||||
|
|
||||||
|
public class PriorityLines implements Prioritized, Comparable<PriorityLines>
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// FIELDS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private int priority;
|
||||||
|
@Override public int getPriority() { return this.priority; }
|
||||||
|
public void setPriority(int priority) { this.priority = priority; }
|
||||||
|
|
||||||
|
private List<String> lines;
|
||||||
|
public List<String> getLines() { return this.lines; }
|
||||||
|
public void setLines(List<String> lines) { this.lines = lines; }
|
||||||
|
public void setLines(String... lines) { this.setLines(Arrays.asList(lines)); }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public PriorityLines(int priority, List<String> lines)
|
||||||
|
{
|
||||||
|
this.priority = priority;
|
||||||
|
this.lines = lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PriorityLines(int priority, String... lines)
|
||||||
|
{
|
||||||
|
this(priority, Arrays.asList(lines));
|
||||||
|
}
|
||||||
|
|
||||||
|
public PriorityLines(int priority)
|
||||||
|
{
|
||||||
|
this(priority, new LinkedList<String>());
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// TO STRING
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return MassiveCore.gson.toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// COMPARABLE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(PriorityLines that)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = Integer.valueOf(this.priority).compareTo(that.priority);
|
||||||
|
if (ret != 0) return ret;
|
||||||
|
|
||||||
|
if (MUtil.equals(this.lines, that.lines)) return 0;
|
||||||
|
ret = HashCodeComparator.get().compare(this.lines, that.lines);
|
||||||
|
if (ret != 0) return ret;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// HASH CODE & EQUALS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((lines == null) ? 0 : lines.hashCode());
|
||||||
|
result = prime * result + priority;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj)
|
||||||
|
{
|
||||||
|
if (this == obj) return true;
|
||||||
|
if (obj == null) return false;
|
||||||
|
if (!(obj instanceof PriorityLines)) return false;
|
||||||
|
PriorityLines other = (PriorityLines) obj;
|
||||||
|
if (lines == null)
|
||||||
|
{
|
||||||
|
if (other.lines != null) return false;
|
||||||
|
}
|
||||||
|
else if (!lines.equals(other.lines)) return false;
|
||||||
|
if (priority != other.priority) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user