
com.harium.suneidesis.concept.attribute.Properties Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Project to represent knowledge
The newest version!
package com.harium.suneidesis.concept.attribute;
import com.harium.suneidesis.concept.Concept;
import com.harium.suneidesis.concept.measurement.Measurement;
import java.util.HashMap;
import java.util.Map;
import static com.harium.suneidesis.concept.measurement.Measurement.ZERO;
public class Properties extends Concept {
private final Map map = new HashMap<>();
private final Map quantities = new HashMap<>();
public Properties(String name) {
super(name);
}
public void add(Concept property, Measurement measurement) {
map.put(property.getName(), property);
quantities.put(property, measurement);
}
public Measurement query(Concept part) {
Measurement measurement = quantities.get(part);
if (measurement == null) {
measurement = ZERO;
}
return measurement;
}
public Measurement query(String name) {
Concept key = map.get(name);
if (key == null) {
return ZERO;
}
return quantities.get(key);
}
public void merge(Properties properties) {
for (Map.Entry entry : properties.quantities.entrySet()) {
add(entry.getKey(), entry.getValue());
}
}
public boolean equals(Properties properties) {
boolean equals = true;
for (Map.Entry entry : quantities.entrySet()) {
Concept key = entry.getKey();
Measurement q = entry.getValue();
Concept concept = properties.map.get(key.getName());
Measurement toCompare = properties.quantities.get(concept);
equals &= q.equals(toCompare);
}
return equals;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy