
com.windowsazure.samples.Property Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jpa4azure Show documentation
Show all versions of jpa4azure Show documentation
jpa4azure, implements a subset of the JPA specification using Azure Storage for pesisting beans. see http://jpa4azure.codeplex.com for more information.
package com.windowsazure.samples;
import java.nio.ByteBuffer;
import java.util.Date;
import java.util.UUID;
import com.windowsazure.samples.EdmType;
import com.windowsazure.samples.Property;
import com.windowsazure.samples.internal.util.Base64;
import com.windowsazure.samples.internal.util.Util;
public final class Property {
public static final EdmType DEFAULT_TYPE = EdmType.EdmString;
public static final String PARTITION_KEY = "PartitionKey";
public static final String ROW_KEY = "RowKey";
public static final String TIMESTAMP = "Timestamp";
public static final String TYPE = "type";
public EdmType getEdmType() {
return edmType;
}
public String getName() {
return name;
}
public String getRepresentation() {
return representation;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public static Property> fromRepresentation(String name, EdmType edmType, String representation)
throws Exception {
switch (edmType) {
case EdmBinary:
byte[] bytes = Base64.decode(representation.getBytes());
ByteBuffer buffer = ByteBuffer.wrap(bytes);
return new Property(name, buffer);
case EdmBoolean:
Boolean booleanValue = Boolean.parseBoolean(representation);
return new Property(name, booleanValue);
case EdmDateTime:
Date date = Util.xmlStringToDate(representation);
return new Property(name, date);
case EdmDouble:
Double doubleValue = Double.parseDouble(representation);
return new Property(name, doubleValue);
case EdmGuid:
UUID guid = UUID.fromString(representation);
return new Property(name, guid);
case EdmInt32:
Integer int32 = Integer.parseInt(representation);
return new Property(name, int32);
case EdmInt64:
Long int64 = Long.parseLong(representation);
return new Property(name, int64);
case EdmString:
return new Property(name, representation);
}
throw new Exception("Unable to build Property");
}
public static Property newProperty(String name, ByteBuffer buffer) {
return new Property(name, buffer);
}
public static Property newProperty(String name, Boolean booleanValue) {
return new Property(name, booleanValue);
}
public static Property newProperty(String name, Date date) {
return new Property(name, date);
}
public static Property newProperty(String name, Double doubleValue) {
return new Property(name, doubleValue);
}
public static Property newProperty(String name, UUID guid) {
return new Property(name, guid);
}
public static Property newProperty(String name, Integer int32) {
return new Property(name, int32);
}
public static Property newProperty(String name, Long int64) {
return new Property(name, int64);
}
public static Property newProperty(String name, String string) {
return new Property(name, string);
}
private Property(String name, T value) {
this.name = name;
this.value = value;
if (value instanceof ByteBuffer) {
this.edmType = EdmType.EdmBinary;
this.representation = new String(Base64.encode(((ByteBuffer) value).array()));
return;
}
if (value instanceof Boolean) {
this.edmType = EdmType.EdmBoolean;
this.representation = value.toString();
return;
}
if (value instanceof Date) {
this.edmType = EdmType.EdmDateTime;
this.representation = Util.dateToXmlStringWithoutTZ((Date) value);
return;
}
if (value instanceof Double) {
this.edmType = EdmType.EdmDouble;
this.representation = value.toString();
return;
}
if (value instanceof UUID) {
this.edmType = EdmType.EdmGuid;
this.representation = value.toString();
return;
}
if (value instanceof Integer) {
this.edmType = EdmType.EdmInt32;
this.representation = value.toString();
return;
}
if (value instanceof Long) {
this.edmType = EdmType.EdmInt64;
this.representation = value.toString();
return;
}
if (value instanceof String) {
this.edmType = EdmType.EdmString;
this.representation = (String) value;
return;
}
this.edmType = EdmType.EdmUnsupported;
this.representation = value.toString();
}
private EdmType edmType;
private String name;
private String representation;
private T value;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy