Add SDP interface classes extracted from nist RI.

remove 'public' keyword from each method in all interface classes.
add super(exception).
diff --git a/java/javax/sdp/Attribute.java b/java/javax/sdp/Attribute.java
new file mode 100644
index 0000000..156f051
--- /dev/null
+++ b/java/javax/sdp/Attribute.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Attribute {
+    String encode();
+    String getName() throws SdpParseException;
+    void setName(String name) throws SdpException;
+    boolean hasValue() throws SdpParseException;
+    String getValue() throws SdpParseException;
+    void setValue(String value) throws SdpException;
+    void setValueAllowNull(String value) ;
+    Object clone();
+    boolean equals(Object that );
+}
diff --git a/java/javax/sdp/BandWidth.java b/java/javax/sdp/BandWidth.java
new file mode 100644
index 0000000..4edea95
--- /dev/null
+++ b/java/javax/sdp/BandWidth.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface BandWidth {
+    String getBwtype();
+    int getBandwidth();
+    void setBwtype(String b);
+    void setBandwidth(int b);
+    String encode();
+    String getType() throws SdpParseException;
+    void setType(String type) throws SdpException;
+    int getValue() throws SdpParseException;
+    void setValue(int value) throws SdpException;
+}
diff --git a/java/javax/sdp/Connection.java b/java/javax/sdp/Connection.java
new file mode 100644
index 0000000..35027ce
--- /dev/null
+++ b/java/javax/sdp/Connection.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Connection {
+    String getNettype();
+    String getAddrtype();
+    void setNettype(String n);
+    void setAddrType(String a);
+    String encode();
+    String getAddress() throws SdpParseException;
+    String getAddressType() throws SdpParseException;
+    String getNetworkType() throws SdpParseException;
+    void setAddressType(String type) throws SdpException;
+    void setNetworkType(String type) throws SdpException;
+    Object clone();
+}
diff --git a/java/javax/sdp/EMail.java b/java/javax/sdp/EMail.java
new file mode 100644
index 0000000..ef1811f
--- /dev/null
+++ b/java/javax/sdp/EMail.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface EMail {
+    String encode();
+    String getValue() throws SdpParseException;
+    void setValue(String value) throws SdpException;
+    Object clone();
+}
diff --git a/java/javax/sdp/Info.java b/java/javax/sdp/Info.java
new file mode 100644
index 0000000..6c6a7f0
--- /dev/null
+++ b/java/javax/sdp/Info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Info {
+    String getInformation();
+    void setInformation(String info);
+    String encode();
+    String getValue() throws SdpParseException;
+    void setValue(String value) throws SdpException;
+    Object clone();
+}
diff --git a/java/javax/sdp/Key.java b/java/javax/sdp/Key.java
new file mode 100644
index 0000000..97ec3fa
--- /dev/null
+++ b/java/javax/sdp/Key.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Key {
+    String getType();
+    String getKeyData();
+    void setType(String t);
+    void setKeyData(String k);
+    String encode();
+    String getMethod() throws SdpParseException;
+    void setMethod(String name) throws SdpException;
+    boolean hasKey() throws SdpParseException;
+    String getKey() throws SdpParseException;
+    void setKey(String key) throws SdpException;
+    Object clone();
+}
diff --git a/java/javax/sdp/Media.java b/java/javax/sdp/Media.java
new file mode 100644
index 0000000..0ba9c41
--- /dev/null
+++ b/java/javax/sdp/Media.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface Media {
+    String getMedia();
+    int getPort();
+    int getNports();
+    Vector getFormats();
+    void setMedia(String m);
+    void setPort(int p);
+    void setNports(int n);
+    void setProto(String p);
+    void setFormats(Vector formats);
+    void setMediaType(String mediaType) throws SdpException;
+    int getMediaPort() throws SdpParseException;
+    void setMediaPort(int port) throws SdpException;
+    int getPortCount() throws SdpParseException;
+    void setPortCount(int portCount) throws SdpException;
+    String getProtocol() throws SdpParseException;
+    void setProtocol(String protocol) throws SdpException;
+    void setMediaFormats(Vector mediaFormats) throws SdpException;
+    String encode();
+    Object clone();
+}
diff --git a/java/javax/sdp/MediaDescription.java b/java/javax/sdp/MediaDescription.java
new file mode 100644
index 0000000..936b413
--- /dev/null
+++ b/java/javax/sdp/MediaDescription.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface MediaDescription {
+    String encode();
+    Vector getAttributeFields();
+    void setAttributeFields(Vector a);
+    Media getMedia();
+    void setMedia(Media media) throws SdpException;
+    Info getInfo();
+    void setInfo(Info i) throws SdpException;
+    Connection getConnection();
+    void setConnection(Connection conn) throws SdpException;
+    Vector getBandwidths(boolean create);
+    void setBandwidths(Vector bandwidths) throws SdpException;
+    int getBandwidth(String name) throws SdpParseException;
+    void setBandwidth(String name, int value) throws SdpException;
+    void removeBandwidth(String name);
+    Key getKey();
+    void setKey(Key key) throws SdpException;
+    Vector getAttributes(boolean create);
+    void setAttributes(Vector attributes) throws SdpException;
+    String getAttribute(String name) throws SdpParseException;
+    void setAttribute(String name, String value) throws SdpException;
+    void setDuplexity(String duplexity);
+    void removeAttribute(String name);
+    Vector getMimeTypes() throws SdpException;
+    Vector getMimeParameters() throws SdpException;
+    void setPreconditionFields(Vector precondition) throws SdpException;
+    Vector getPreconditionFields();
+}
diff --git a/java/javax/sdp/Origin.java b/java/javax/sdp/Origin.java
new file mode 100644
index 0000000..a3994e7
--- /dev/null
+++ b/java/javax/sdp/Origin.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Origin {
+    String getUsername() throws SdpParseException;
+    long getSessId();
+    String getSessIdAsString();
+    long getSessVersion();
+    String getSessVersionAsString();
+    String getNettype();
+    String getAddrtype();
+    void setSessId(long s);
+    void setSessionId(String sessId);
+    void setSessVersion(long s);
+    void setSessVersion(String s);
+    void setNettype(String n);
+    void setAddrtype(String a);
+    void setUsername(String user) throws SdpException;
+    long getSessionId() throws SdpParseException;
+    void setSessionId(long id) throws SdpException;
+    long getSessionVersion() throws SdpParseException;
+    void setSessionVersion(long version) throws SdpException;
+    String getAddress() throws SdpParseException;
+    String getAddressType() throws SdpParseException;
+    String getNetworkType() throws SdpParseException;
+    void setAddressType(String type) throws SdpException;
+    void setNetworkType(String type) throws SdpException;
+    String encode();
+    Object clone();
+}
diff --git a/java/javax/sdp/Phone.java b/java/javax/sdp/Phone.java
new file mode 100644
index 0000000..c8e52ba
--- /dev/null
+++ b/java/javax/sdp/Phone.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Phone {
+    String getName();
+    String getPhoneNumber();
+    void setName(String name);
+    void setPhoneNumber(String phoneNumber);
+    String getValue() throws SdpParseException;
+    void setValue(String value) throws SdpException;
+    String encode();
+}
diff --git a/java/javax/sdp/RepeatTime.java b/java/javax/sdp/RepeatTime.java
new file mode 100644
index 0000000..0ab304a
--- /dev/null
+++ b/java/javax/sdp/RepeatTime.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface RepeatTime {
+    LinkedList getOffsets();
+    int getRepeatInterval() throws SdpParseException;
+    int getActiveDuration() throws SdpParseException;
+    int[] getOffsetArray() throws SdpParseException;
+    void setOffsetArray(int[] offsets) throws SdpException;
+    boolean getTypedTime() throws SdpParseException;
+    void setTypedTime(boolean typedTime);
+    String encode();
+    Object clone();
+}
diff --git a/java/javax/sdp/SDPFieldNames.java b/java/javax/sdp/SDPFieldNames.java
new file mode 100644
index 0000000..7cb608f
--- /dev/null
+++ b/java/javax/sdp/SDPFieldNames.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface SDPFieldNames {
+    abstract String encode();
+    boolean equals(Object that);
+    boolean match(Object other);
+}
diff --git a/java/javax/sdp/SdpConstants.java b/java/javax/sdp/SdpConstants.java
new file mode 100644
index 0000000..6334773
--- /dev/null
+++ b/java/javax/sdp/SdpConstants.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public class SdpConstants {
+
+    public static final String RTPMAP = "rtpmap";
+}
diff --git a/java/javax/sdp/SdpException.java b/java/javax/sdp/SdpException.java
new file mode 100644
index 0000000..58abcfd
--- /dev/null
+++ b/java/javax/sdp/SdpException.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.lang.*;
+
+public class SdpException extends Exception {
+
+    public SdpException() {}
+    public SdpException(String msg) {
+        super(msg);
+    }
+    public SdpException(String msg, Exception ex) {
+        super(msg, ex);
+    }
+
+}
diff --git a/java/javax/sdp/SdpFactory.java b/java/javax/sdp/SdpFactory.java
new file mode 100644
index 0000000..6a7ecca
--- /dev/null
+++ b/java/javax/sdp/SdpFactory.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public class SdpFactory {
+    static final long POSIX_TIME_OFFSET = (70*365 + 70/4) * 86400L;
+    public SdpFactory() {}
+
+    public static Date getDateFromNtp(long time) {
+        return new Date((time - POSIX_TIME_OFFSET) * 1000);
+    }
+
+    public static long getNtpTime(Date time) {
+        if (time == null) return -1;
+        return time.getTime() / 1000 + POSIX_TIME_OFFSET;
+    }
+}
diff --git a/java/javax/sdp/SdpParseException.java b/java/javax/sdp/SdpParseException.java
new file mode 100644
index 0000000..4ce41d7
--- /dev/null
+++ b/java/javax/sdp/SdpParseException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public class SdpParseException extends SdpException {
+    public SdpParseException() {}
+    public SdpParseException(String msg) {
+        super(msg);
+    }
+    public SdpParseException(String msg, Exception ex) {
+        super(msg, ex);
+    }
+}
diff --git a/java/javax/sdp/SessionDescription.java b/java/javax/sdp/SessionDescription.java
new file mode 100644
index 0000000..f1c8abb
--- /dev/null
+++ b/java/javax/sdp/SessionDescription.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface SessionDescription {
+    Version getVersion();
+    void setVersion(Version v) throws SdpException;
+    Origin getOrigin();
+    void setOrigin(Origin origin) throws SdpException;
+    SessionName getSessionName();
+    void setSessionName(SessionName sessionName) throws SdpException;
+    Info getInfo();
+    void setInfo(Info i) throws SdpException;
+    URI getURI();
+    void setURI(URI uri) throws SdpException;
+    Vector getEmails(boolean create) throws SdpParseException;
+    void setEmails(Vector emails) throws SdpException;
+    Vector getPhones(boolean create) throws SdpException;
+    void setPhones(Vector phones) throws SdpException;
+    Vector getTimeDescriptions(boolean create) throws SdpException;
+    void setTimeDescriptions(Vector times) throws SdpException;
+    Vector getZoneAdjustments(boolean create) throws SdpException;
+    void setZoneAdjustments(Vector zoneAdjustments) throws SdpException;
+    Connection getConnection();
+    void setConnection(Connection conn) throws SdpException;
+    Vector getBandwidths(boolean create);
+    void setBandwidths(Vector bandwidthList) throws SdpException;
+    int getBandwidth(String name) throws SdpParseException;
+    void setBandwidth(String name, int value) throws SdpException;
+    void removeBandwidth(String name);
+    Key getKey();
+    void setKey(Key key) throws SdpException;
+    String getAttribute(String name) throws SdpParseException;
+    Vector getAttributes(boolean create);
+    void removeAttribute(String name);
+    void setAttribute(String name, String value) throws SdpException;
+    void setAttributes(Vector attributes) throws SdpException;
+    Vector getMediaDescriptions(boolean create) throws SdpException;
+}
diff --git a/java/javax/sdp/SessionName.java b/java/javax/sdp/SessionName.java
new file mode 100644
index 0000000..81bbe26
--- /dev/null
+++ b/java/javax/sdp/SessionName.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface SessionName {
+    String getSessionName();
+    void setSessionName(String s);
+    String getValue() throws SdpParseException;
+    void setValue(String value) throws SdpException;
+    String encode();
+    Object clone();
+}
diff --git a/java/javax/sdp/Time.java b/java/javax/sdp/Time.java
new file mode 100644
index 0000000..7eb7cc3
--- /dev/null
+++ b/java/javax/sdp/Time.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface Time {
+    long getStartTime();
+    long getStopTime();
+    void setStartTime(long startTime);
+    void setStopTime(long stopTime);
+    Date getStart() throws SdpParseException;
+    Date getStop() throws SdpParseException;
+    void setStop(Date stop) throws SdpException;
+    void setStart(Date start) throws SdpException;
+    boolean getTypedTime();
+    void setTypedTime(boolean typedTime);
+    boolean isZero();
+    void setZero();
+    Object clone();
+    String encode();
+}
diff --git a/java/javax/sdp/TimeDescription.java b/java/javax/sdp/TimeDescription.java
new file mode 100644
index 0000000..189457f
--- /dev/null
+++ b/java/javax/sdp/TimeDescription.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface TimeDescription {
+    Time getTime();
+    void setTime(Time timeField) throws SdpException;
+    Vector getRepeatTimes(boolean create);
+    void setRepeatTimes(Vector repeatTimes) throws SdpException;
+}
diff --git a/java/javax/sdp/TimeZoneAdjustment.java b/java/javax/sdp/TimeZoneAdjustment.java
new file mode 100644
index 0000000..a2efcda
--- /dev/null
+++ b/java/javax/sdp/TimeZoneAdjustment.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.util.*;
+
+public interface TimeZoneAdjustment {
+    String encode();
+    Hashtable getZoneAdjustments(boolean create) throws SdpParseException;
+    void setZoneAdjustments(Hashtable map) throws SdpException;
+    void setTypedTime(boolean typedTime);
+    boolean getTypedTime();
+    Object clone();
+}
diff --git a/java/javax/sdp/URI.java b/java/javax/sdp/URI.java
new file mode 100644
index 0000000..7cf5753
--- /dev/null
+++ b/java/javax/sdp/URI.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+import java.net.URL;
+
+public interface URI {
+    String getURI();
+    void setURI(String uri);
+    URL get();
+    void set(URL uri);
+    String encode();
+}
diff --git a/java/javax/sdp/Version.java b/java/javax/sdp/Version.java
new file mode 100644
index 0000000..563766a
--- /dev/null
+++ b/java/javax/sdp/Version.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sdp;
+
+public interface Version {
+    int getProtoVersion();
+    void setProtoVersion(int pv);
+    int getVersion() throws SdpParseException;
+    void setVersion(int value) throws SdpException;
+    String encode();
+    Object clone();
+}