package org.societies.personalisation.socialprofiler.datamodel.impl; import org.neo4j.graphdb.Node; import org.societies.personalisation.socialprofiler.datamodel.behaviour.Profile; import org.societies.personalisation.socialprofiler.datamodel.behaviour.ProfileUtils; import org.societies.personalisation.socialprofiler.datamodel.utils.NodeProperties; public class ProfileImpl implements Profile, NodeProperties{ private final Node underlyingNode; private final Profile.Type type; public ProfileImpl(Node underlyingNode, Profile.Type type, String name) { super(); this.underlyingNode = underlyingNode; this.type = type; setName(name); } /** * returns the underlying node of the profile * @return Node underlyingNode */ public Node getUnderlyingNode() { return underlyingNode; } @Override public void setName(String name) { underlyingNode.setProperty(NAME_PROPERTY, name ); } @Override public String getName() { return (String) underlyingNode.getProperty( NAME_PROPERTY ); } @Override public String getDescription() { return (String) underlyingNode.getProperty( DESCR_PROPERTY ); } @Override public Profile.Type getType() { return this.type; } @Override public long getFrequency() { try { return Long.parseLong(underlyingNode.getProperty( FREQUENCY_PROPERTY ).toString()); } catch (Exception e) { return 0; } } @Override public void updateFrequency(int numberOfActions) { // to be done ....s } @Override public String getLastTime() { return (String) underlyingNode.getProperty( LAST_TIME_PROPERTY ); } @Override public void setLastTime(String lastTime) { underlyingNode.setProperty( LAST_TIME_PROPERTY,lastTime ); } @Override public int getNumber() { try { return Integer.parseInt(underlyingNode.getProperty( NUMBER_PROPERTY).toString()); } catch (Exception e){ return 0; } } @Override public void setNumber(String number) { underlyingNode.setProperty(NUMBER_PROPERTY, number); } @Override public void setFrequency(String frequency) { underlyingNode.setProperty( FREQUENCY_PROPERTY, frequency ); } @Override public void incrementNumber() { underlyingNode.setProperty( NUMBER_PROPERTY, getNumber()+1 ); } @Override public void setDescription(String description) { underlyingNode.setProperty( LAST_TIME_PROPERTY, description); } }