/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.jevis.commons.annotation;
import java.lang.annotation.Annotation;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jevis.api.JEVisAttribute;
import org.jevis.api.JEVisDataSource;
import org.jevis.api.JEVisException;
import org.jevis.api.JEVisObject;
import org.jevis.api.JEVisOption;
import org.jevis.api.JEVisSample;
import org.jevis.api.JEVisType;
import org.jevis.api.JEVisUnit;
import org.joda.time.DateTime;
import org.joda.time.Period;
/**
*
* @author Florian Simon
*/
public class CommonJEVisAttribute implements JEVisAttribute {
private JEVisAttribute attribute;
public CommonJEVisAttribute(JEVisAttribute att) {
attribute = att;
}
public CommonJEVisAttribute(JEVisObject object) {
for (Annotation ano : CommonJEVisAttribute.class.getAnnotations()) {
System.out.println("ano.string: " + ano.toString());
System.out.println("ano.type: " + ano.annotationType());
}
if (CommonJEVisAttribute.class.isAnnotationPresent(JEVisAttributeResource.class)) {
System.out.println("isAnnotationPresent: " + true);
String typeName = CommonJEVisAttribute.class.getAnnotation(JEVisAttributeResource.class).type();
try {
this.attribute = object.getAttribute(typeName);
System.out.println("SUCCESS!!!!!!!!!!");
} catch (JEVisException ex) {
Logger.getLogger(CommonJEVisAttribute.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
System.out.println("isAnnotationPresent: " + false);
}
}
@Override
public String getName() {
return attribute.getName();
}
@Override
public boolean delete() {
return attribute.delete();
}
@Override
public JEVisType getType() throws JEVisException {
return attribute.getType();
}
@Override
public JEVisObject getObject() {
return attribute.getObject();
}
@Override
public List<JEVisSample> getAllSamples() {
return attribute.getAllSamples();
}
@Override
public List<JEVisSample> getSamples(DateTime from, DateTime to) {
return attribute.getSamples(from, to);
}
@Override
public int addSamples(List<JEVisSample> samples) throws JEVisException {
return attribute.addSamples(samples);
}
@Override
public JEVisSample buildSample(DateTime ts, Object value) throws JEVisException {
return attribute.buildSample(ts, value);
}
@Override
public JEVisSample buildSample(DateTime ts, double value, JEVisUnit unit) throws JEVisException {
return attribute.buildSample(ts, value, unit);
}
@Override
public JEVisSample buildSample(DateTime ts, Object value, String note) throws JEVisException {
return attribute.buildSample(ts, value, note);
}
@Override
public JEVisSample buildSample(DateTime ts, double value, String note, JEVisUnit unit) throws JEVisException {
return attribute.buildSample(ts, value, note, unit);
}
@Override
public JEVisSample getLatestSample() {
return attribute.getLatestSample();
}
@Override
public int getPrimitiveType() throws JEVisException {
return attribute.getPrimitiveType();
}
@Override
public boolean hasSample() {
return attribute.hasSample();
}
@Override
public DateTime getTimestampFromFirstSample() {
return attribute.getTimestampFromFirstSample();
}
@Override
public DateTime getTimestampFromLastSample() {
return attribute.getTimestampFromLastSample();
}
@Override
public boolean deleteAllSample() throws JEVisException {
return attribute.deleteAllSample();
}
@Override
public boolean deleteSamplesBetween(DateTime from, DateTime to) throws JEVisException {
return attribute.deleteSamplesBetween(from, to);
}
@Override
public JEVisUnit getDisplayUnit() throws JEVisException {
return attribute.getDisplayUnit();
}
@Override
public void setDisplayUnit(JEVisUnit unit) throws JEVisException {
attribute.setDisplayUnit(unit);
}
@Override
public JEVisUnit getInputUnit() throws JEVisException {
return attribute.getInputUnit();
}
@Override
public void setInputUnit(JEVisUnit unit) throws JEVisException {
attribute.setInputUnit(unit);
}
@Override
public Period getDisplaySampleRate() {
return attribute.getDisplaySampleRate();
}
@Override
public Period getInputSampleRate() {
return attribute.getInputSampleRate();
}
@Override
public void setInputSampleRate(Period period) {
attribute.setInputSampleRate(period);
}
@Override
public void setDisplaySampleRate(Period period) {
attribute.setDisplaySampleRate(period);
}
@Override
public boolean isType(JEVisType type) {
return attribute.isType(type);
}
@Override
public long getSampleCount() {
return attribute.getSampleCount();
}
@Override
public List<JEVisOption> getOptions() {
return attribute.getOptions();
}
@Override
public void addOption(JEVisOption option) {
attribute.addOption(option);
}
@Override
public void removeOption(JEVisOption option) {
attribute.removeOption(option);
}
@Override
public JEVisDataSource getDataSource() throws JEVisException {
return attribute.getDataSource();
}
@Override
public void commit() throws JEVisException {
attribute.commit();
}
@Override
public void rollBack() throws JEVisException {
attribute.rollBack();
}
@Override
public boolean hasChanged() {
return attribute.hasChanged();
}
@Override
public int compareTo(JEVisAttribute o) {
return attribute.compareTo(o);
}
@Override
public Long getObjectID() {
return getObject().getID();
}
}