Differential D4006 Diff 14136 java/src/main/java/org/softwareheritage/graph/webgraph/AbstractSwhLabelList.java
Changeset View
Changeset View
Standalone View
Standalone View
java/src/main/java/org/softwareheritage/graph/webgraph/AbstractSwhLabelList.java
- This file was added.
package org.softwareheritage.graph.webgraph; | |||||
import it.unimi.dsi.big.webgraph.labelling.AbstractLabel; | |||||
import it.unimi.dsi.big.webgraph.labelling.Label; | |||||
import org.softwareheritage.graph.SwhLabel; | |||||
import java.util.Arrays; | |||||
/** | |||||
* Webgraph label abstract interface for {@link SwhLabel}. | |||||
* | |||||
* @author The Software Heritage developers | |||||
*/ | |||||
public abstract class AbstractSwhLabelList extends AbstractLabel implements Label { | |||||
protected final String key; | |||||
public SwhLabel[] value; | |||||
public AbstractSwhLabelList(String key, SwhLabel[] value) { | |||||
this.key = key; | |||||
this.value = value; | |||||
} | |||||
@Override | |||||
public String wellKnownAttributeKey() { | |||||
return key; | |||||
} | |||||
@Override | |||||
public String[] attributeKeys() { | |||||
return new String[] { key }; | |||||
} | |||||
@Override | |||||
public Class<?>[] attributeTypes() { | |||||
return new Class[] { SwhLabel[].class }; | |||||
} | |||||
@Override | |||||
public Object get(String key) { | |||||
if (this.key.equals(key)) | |||||
return value; | |||||
throw new IllegalArgumentException(); | |||||
} | |||||
@Override | |||||
public Object get() { | |||||
return value; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return key + ":" + Arrays.toString(value); | |||||
} | |||||
@Override | |||||
public boolean equals(Object x) { | |||||
if (x instanceof AbstractSwhLabelList) | |||||
return Arrays.equals(value, ((AbstractSwhLabelList) x).value); | |||||
else return false; | |||||
} | |||||
@Override | |||||
public int hashCode() { | |||||
return Arrays.hashCode(value); | |||||
} | |||||
} |