diff --git a/src/java/davmail/exchange/ews/ExtendedFieldURI.java b/src/java/davmail/exchange/ews/ExtendedFieldURI.java index 66690fcb..f3c64b1b 100644 --- a/src/java/davmail/exchange/ews/ExtendedFieldURI.java +++ b/src/java/davmail/exchange/ews/ExtendedFieldURI.java @@ -25,10 +25,16 @@ import java.io.Writer; * Extended MAPI property. */ public class ExtendedFieldURI implements FieldURI { - protected final String propertyTag; - protected final String propertyType; + protected enum PropertyType { + ApplicationTime, ApplicationTimeArray, Binary, BinaryArray, Boolean, CLSID, CLSIDArray, Currency, CurrencyArray, + Double, DoubleArray, Error, Float, FloatArray, Integer, IntegerArray, Long, LongArray, Null, Object, + ObjectArray, Short, ShortArray, SystemTime, SystemTimeArray, String, StringArray + } - public ExtendedFieldURI(String propertyTag, String propertyType) { + protected final String propertyTag; + protected final PropertyType propertyType; + + public ExtendedFieldURI(String propertyTag, PropertyType propertyType) { this.propertyTag = propertyTag; this.propertyType = propertyType; } @@ -37,18 +43,18 @@ public class ExtendedFieldURI implements FieldURI { writer.write(""); } - public static final ExtendedFieldURI PR_INSTANCE_KEY = new ExtendedFieldURI("0x0FF6", "Binary"); - public static final ExtendedFieldURI PR_MESSAGE_SIZE = new ExtendedFieldURI("0x0E08", "Integer"); - public static final ExtendedFieldURI PR_INTERNET_ARTICLE_NUMBER = new ExtendedFieldURI("0x0E23", "Integer"); - public static final ExtendedFieldURI JUNK_FLAG = new ExtendedFieldURI("0x1083", "Integer"); - public static final ExtendedFieldURI PR_FLAG_STATUS = new ExtendedFieldURI("0x1090", "Integer"); - public static final ExtendedFieldURI PR_MESSAGE_FLAGS = new ExtendedFieldURI("0x0E07", "Integer"); - public static final ExtendedFieldURI PR_ACTION_FLAG = new ExtendedFieldURI("0x1081", "Integer"); - public static final ExtendedFieldURI PR_URL_COMP_NAME = new ExtendedFieldURI("0x10F3", "String"); + public static final ExtendedFieldURI PR_INSTANCE_KEY = new ExtendedFieldURI("0x0FF6", PropertyType.Binary); + public static final ExtendedFieldURI PR_MESSAGE_SIZE = new ExtendedFieldURI("0x0E08", PropertyType.Integer); + public static final ExtendedFieldURI PR_INTERNET_ARTICLE_NUMBER = new ExtendedFieldURI("0x0E23", PropertyType.Integer); + public static final ExtendedFieldURI JUNK_FLAG = new ExtendedFieldURI("0x1083", PropertyType.Integer); + public static final ExtendedFieldURI PR_FLAG_STATUS = new ExtendedFieldURI("0x1090", PropertyType.Integer); + public static final ExtendedFieldURI PR_MESSAGE_FLAGS = new ExtendedFieldURI("0x0E07", PropertyType.Integer); + public static final ExtendedFieldURI PR_ACTION_FLAG = new ExtendedFieldURI("0x1081", PropertyType.Integer); + public static final ExtendedFieldURI PR_URL_COMP_NAME = new ExtendedFieldURI("0x10F3", PropertyType.String); } diff --git a/src/java/davmail/exchange/ews/FolderQueryTraversal.java b/src/java/davmail/exchange/ews/FolderQueryTraversal.java index 3c2ccda9..65872bdf 100644 --- a/src/java/davmail/exchange/ews/FolderQueryTraversal.java +++ b/src/java/davmail/exchange/ews/FolderQueryTraversal.java @@ -24,23 +24,10 @@ import java.io.Writer; /** * Folder folderQueryTraversalType search mode. */ -public final class FolderQueryTraversal { - private final String value; +public final class FolderQueryTraversal extends AttributeOption { private FolderQueryTraversal(String value) { - this.value = value; - } - - /** - * Write XML content to writer. - * - * @param writer writer - * @throws IOException on error - */ - public void write(Writer writer) throws IOException { - writer.write(" Traversal=\""); - writer.write(value); - writer.write("\""); + super("Traversal", value); } /** diff --git a/src/java/davmail/exchange/ews/MessageDisposition.java b/src/java/davmail/exchange/ews/MessageDisposition.java index 3bad753f..9c9d0e46 100644 --- a/src/java/davmail/exchange/ews/MessageDisposition.java +++ b/src/java/davmail/exchange/ews/MessageDisposition.java @@ -24,23 +24,10 @@ import java.io.Writer; /** * MessageDisposition flag. */ -public class MessageDisposition { - private final String value; +public class MessageDisposition extends AttributeOption { private MessageDisposition(String value) { - this.value = value; - } - - /** - * Write XML content to writer. - * - * @param writer writer - * @throws java.io.IOException on error - */ - public void write(Writer writer) throws IOException { - writer.write(" MessageDisposition=\""); - writer.write(value); - writer.write("\""); + super("MessageDisposition", value); } public static final MessageDisposition SaveOnly = new MessageDisposition("SaveOnly");