diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferManager.java index 686830cdc..4139174d3 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferManager.java @@ -36,12 +36,12 @@ import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildEleme import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.jivesoftware.smackx.jingle.provider.JingleContentProviderManager; import org.jivesoftware.smackx.jingle_filetransfer.callback.IncomingJingleFileTransferCallback; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleContentDescriptionFileTransfer; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferPayloadElement; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferContentDescription; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChildElement; import org.jivesoftware.smackx.jingle_filetransfer.handler.FileOfferHandler; import org.jivesoftware.smackx.jingle_filetransfer.handler.FileRequestHandler; import org.jivesoftware.smackx.jingle_filetransfer.listener.IncomingJingleFileTransferListener; -import org.jivesoftware.smackx.jingle_filetransfer.provider.JingleContentDescriptionFileTransferProvider; +import org.jivesoftware.smackx.jingle_filetransfer.provider.JingleFileTransferContentDescriptionProvider; import org.jivesoftware.smackx.jingle_ibb.JingleInBandByteStreamManager; import org.jivesoftware.smackx.jingle_ibb.element.JingleInBandByteStreamTransport; import org.jxmpp.jid.FullJid; @@ -85,7 +85,7 @@ public final class JingleFileTransferManager extends Manager implements JingleHa NAMESPACE_V5, this); JingleContentProviderManager.addJingleContentDescriptionProvider( - NAMESPACE_V5, new JingleContentDescriptionFileTransferProvider()); + NAMESPACE_V5, new JingleFileTransferContentDescriptionProvider()); } @@ -112,8 +112,8 @@ public final class JingleFileTransferManager extends Manager implements JingleHa incomingJingleFileTransferListeners.remove(listener); } - public JingleFileTransferPayloadElement.Builder fileTransferPayloadBuilderFromFile(File file) { - JingleFileTransferPayloadElement.Builder payloadBuilder = JingleFileTransferPayloadElement.getBuilder(); + public JingleFileTransferChildElement.Builder fileTransferPayloadBuilderFromFile(File file) { + JingleFileTransferChildElement.Builder payloadBuilder = JingleFileTransferChildElement.getBuilder(); payloadBuilder.setDate(new Date(file.lastModified())); payloadBuilder.setName(file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf(File.pathSeparator) + 1)); payloadBuilder.setSize((int) file.length()); @@ -128,13 +128,13 @@ public final class JingleFileTransferManager extends Manager implements JingleHa final byte[] bytes = new byte[(int) file.length()]; HashElement hashElement = FileAndHashReader.readAndCalculateHash(file, bytes, HashManager.ALGORITHM.SHA_256); Date lastModified = new Date(file.lastModified()); - JingleFileTransferPayloadElement payload = new JingleFileTransferPayloadElement( + JingleFileTransferChildElement payload = new JingleFileTransferChildElement( lastModified, "A file", hashElement, "application/octet-stream", file.getName(), (int) file.length(), null); ArrayList payloadTypes = new ArrayList<>(); payloadTypes.add(payload); - JingleContentDescriptionFileTransfer descriptionFileTransfer = new JingleContentDescriptionFileTransfer(payloadTypes); + JingleFileTransferContentDescription descriptionFileTransfer = new JingleFileTransferContentDescription(payloadTypes); final JingleInBandByteStreamTransport transport = new JingleInBandByteStreamTransport(); JingleContent.Builder cb = JingleContent.getBuilder(); cb.setDescription(descriptionFileTransfer) @@ -220,7 +220,7 @@ public final class JingleFileTransferManager extends Manager implements JingleHa else { throw new AssertionError("Undefined (see XEP-0234 ยง4.1)"); } - //break; + break; case session_terminate: // Remote wants to terminate our current session case transport_accept: diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java index fb1f516fe..979bdae16 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java @@ -32,9 +32,9 @@ public class Checksum implements ExtensionElement { private final JingleContent.Creator creator; private final String name; - private JingleFileTransferPayloadElement file; + private JingleFileTransferChildElement file; - public Checksum(JingleContent.Creator creator, String name, JingleFileTransferPayloadElement file) { + public Checksum(JingleContent.Creator creator, String name, JingleFileTransferChildElement file) { this.creator = creator; this.name = name; Objects.requireNonNull(file.getHash(), "file MUST contain at least one hash element."); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferPayloadElement.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChildElement.java similarity index 91% rename from smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferPayloadElement.java rename to smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChildElement.java index c4cb32bd3..4e3294838 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferPayloadElement.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChildElement.java @@ -26,7 +26,7 @@ import java.util.Date; /** * Content of type File. */ -public class JingleFileTransferPayloadElement extends JingleContentDescriptionChildElement { +public class JingleFileTransferChildElement extends JingleContentDescriptionChildElement { public static final String ELEMENT = "file"; public static final String ELEM_DATE = "date"; public static final String ELEM_DESC = "desc"; @@ -42,7 +42,7 @@ public class JingleFileTransferPayloadElement extends JingleContentDescriptionCh private final int size; private final Range range; - public JingleFileTransferPayloadElement(Date date, String desc, HashElement hash, String mediaType, String name, int size, Range range) { + public JingleFileTransferChildElement(Date date, String desc, HashElement hash, String mediaType, String name, int size, Range range) { this.date = date; this.desc = desc; this.hash = hash; @@ -154,8 +154,8 @@ public class JingleFileTransferPayloadElement extends JingleContentDescriptionCh return this; } - public JingleFileTransferPayloadElement build() { - return new JingleFileTransferPayloadElement(date, desc, hash, mediaType, name, size, range); + public JingleFileTransferChildElement build() { + return new JingleFileTransferChildElement(date, desc, hash, mediaType, name, size, range); } public Builder setFile(File file) { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleContentDescriptionFileTransfer.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferContentDescription.java similarity index 90% rename from smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleContentDescriptionFileTransfer.java rename to smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferContentDescription.java index 693976b60..8dfefbdae 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleContentDescriptionFileTransfer.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferContentDescription.java @@ -25,9 +25,9 @@ import java.util.List; /** * Description. */ -public class JingleContentDescriptionFileTransfer extends JingleContentDescription { +public class JingleFileTransferContentDescription extends JingleContentDescription { - public JingleContentDescriptionFileTransfer(List payloadTypes) { + public JingleFileTransferContentDescription(List payloadTypes) { super(payloadTypes); } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleContentDescriptionFileTransferProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleContentDescriptionFileTransferProvider.java deleted file mode 100644 index 590f393c6..000000000 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleContentDescriptionFileTransferProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * - * Copyright 2017 Paul Schaub - * - * 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 org.jivesoftware.smackx.jingle_filetransfer.provider; - -import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; -import org.jivesoftware.smackx.jingle.provider.JingleContentDescriptionProvider; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleContentDescriptionFileTransfer; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferPayloadElement; -import org.xmlpull.v1.XmlPullParser; - -import java.util.ArrayList; - -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - -/** - * Provider for JingleContentDescriptionFileTransfer elements. - */ -public class JingleContentDescriptionFileTransferProvider - extends JingleContentDescriptionProvider { - @Override - public JingleContentDescriptionFileTransfer parse(XmlPullParser parser, int initialDepth) throws Exception { - ArrayList payloads = new ArrayList<>(); - while (true) { - int tag = parser.nextTag(); - String name = parser.getName(); - - if (tag == START_TAG) { - switch (name) { - case JingleFileTransferPayloadElement.ELEMENT: - payloads.add(new JingleFileTransferPayloadProvider().parse(parser)); - break; - } - } - - if (tag == END_TAG) { - if (name.equals(JingleContentDescriptionFileTransfer.ELEMENT)) { - return new JingleContentDescriptionFileTransfer(payloads); - } - } - } - } -} diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferPayloadProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferContentDescriptionProvider.java similarity index 69% rename from smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferPayloadProvider.java rename to smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferContentDescriptionProvider.java index 2c2a63630..543aee163 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferPayloadProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferContentDescriptionProvider.java @@ -18,24 +18,30 @@ package org.jivesoftware.smackx.jingle_filetransfer.provider; import org.jivesoftware.smackx.hash.element.HashElement; import org.jivesoftware.smackx.hash.provider.HashElementProvider; -import org.jivesoftware.smackx.jingle.provider.JingleContentDescriptionPayloadProvider; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferPayloadElement; +import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; +import org.jivesoftware.smackx.jingle.provider.JingleContentDescriptionProvider; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferContentDescription; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChildElement; import org.jivesoftware.smackx.jingle_filetransfer.element.Range; import org.jxmpp.util.XmppDateTime; import org.xmlpull.v1.XmlPullParser; +import java.util.ArrayList; + import static org.xmlpull.v1.XmlPullParser.END_TAG; import static org.xmlpull.v1.XmlPullParser.START_TAG; /** - * Provider for JingleFileTransferPayloadElements. + * Provider for JingleContentDescriptionFileTransfer elements. */ -public class JingleFileTransferPayloadProvider extends JingleContentDescriptionPayloadProvider { +public class JingleFileTransferContentDescriptionProvider + extends JingleContentDescriptionProvider { @Override - public JingleFileTransferPayloadElement parse(XmlPullParser parser, int initialDepth) throws Exception { + public JingleFileTransferContentDescription parse(XmlPullParser parser, int initialDepth) throws Exception { + ArrayList payloads = new ArrayList<>(); boolean inRange = false; - JingleFileTransferPayloadElement.Builder builder = JingleFileTransferPayloadElement.getBuilder(); + JingleFileTransferChildElement.Builder builder = JingleFileTransferChildElement.getBuilder(); HashElement inRangeHash = null; int offset = 0; @@ -48,23 +54,23 @@ public class JingleFileTransferPayloadProvider extends JingleContentDescriptionP if (tag == START_TAG) { switch (elem) { - case JingleFileTransferPayloadElement.ELEM_DATE: + case JingleFileTransferChildElement.ELEM_DATE: builder.setDate(XmppDateTime.parseXEP0082Date(parser.nextText())); break; - case JingleFileTransferPayloadElement.ELEM_DESC: + case JingleFileTransferChildElement.ELEM_DESC: builder.setDescription(parser.nextText()); break; - case JingleFileTransferPayloadElement.ELEM_MEDIA_TYPE: + case JingleFileTransferChildElement.ELEM_MEDIA_TYPE: builder.setMediaType(parser.nextText()); break; - case JingleFileTransferPayloadElement.ELEM_NAME: + case JingleFileTransferChildElement.ELEM_NAME: builder.setName(parser.nextText()); break; - case JingleFileTransferPayloadElement.ELEM_SIZE: + case JingleFileTransferChildElement.ELEM_SIZE: builder.setSize(Integer.parseInt(parser.nextText())); break; @@ -99,8 +105,13 @@ public class JingleFileTransferPayloadProvider extends JingleContentDescriptionP inRangeHash = null; break; - case JingleFileTransferPayloadElement.ELEMENT: - return builder.build(); + case JingleFileTransferChildElement.ELEMENT: + payloads.add(builder.build()); + builder = JingleFileTransferChildElement.getBuilder(); + break; + + case JingleFileTransferContentDescription.ELEMENT: + return new JingleFileTransferContentDescription(payloads); } } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferPayloadElementTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferChildElementTest.java similarity index 97% rename from smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferPayloadElementTest.java rename to smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferChildElementTest.java index e8df721cc..07772a3c5 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferPayloadElementTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferChildElementTest.java @@ -29,7 +29,7 @@ import static junit.framework.TestCase.assertNull; /** * Test the JingleContentFile class. */ -public class JingleFileTransferPayloadElementTest extends SmackTestSuite { +public class JingleFileTransferChildElementTest extends SmackTestSuite { @Test public void rangeTest() throws Exception { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleContentDescriptionFileTransferTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferContentDescriptionTest.java similarity index 75% rename from smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleContentDescriptionFileTransferTest.java rename to smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferContentDescriptionTest.java index ed85b00cb..231fd6f3a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleContentDescriptionFileTransferTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/jingle_filetransfer/JingleFileTransferContentDescriptionTest.java @@ -21,10 +21,11 @@ import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smackx.hash.HashManager; import org.jivesoftware.smackx.hash.element.HashElement; import org.jivesoftware.smackx.jingle.element.JingleContentDescription; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferPayloadElement; -import org.jivesoftware.smackx.jingle_filetransfer.element.JingleContentDescriptionFileTransfer; +import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferContentDescription; +import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChildElement; import org.jivesoftware.smackx.jingle_filetransfer.element.Range; -import org.jivesoftware.smackx.jingle_filetransfer.provider.JingleContentDescriptionFileTransferProvider; +import org.jivesoftware.smackx.jingle_filetransfer.provider.JingleFileTransferContentDescriptionProvider; import org.junit.Test; import org.jxmpp.util.XmppDateTime; @@ -37,7 +38,7 @@ import static org.junit.Assert.assertNotNull; /** * Test the JingleContentDescriptionFileTransfer element and provider. */ -public class JingleContentDescriptionFileTransferTest extends SmackTestSuite { +public class JingleFileTransferContentDescriptionTest extends SmackTestSuite { @Test public void parserTest() throws Exception { @@ -65,19 +66,19 @@ public class JingleContentDescriptionFileTransferTest extends SmackTestSuite { HashElement hashElement = new HashElement(algorithm, hashB64); Range range = new Range(); Date date = XmppDateTime.parseDate(dateString); - JingleFileTransferPayloadElement jingleFileTransferPayloadElement = new JingleFileTransferPayloadElement(date, descriptionString, hashElement, mediaTypeString, nameString, sizeInt, range); - ArrayList payloads = new ArrayList<>(); - payloads.add(jingleFileTransferPayloadElement); + JingleFileTransferChildElement jingleFileTransferChildElement = new JingleFileTransferChildElement(date, descriptionString, hashElement, mediaTypeString, nameString, sizeInt, range); + ArrayList payloads = new ArrayList<>(); + payloads.add(jingleFileTransferChildElement); - JingleContentDescriptionFileTransfer descriptionFileTransfer = - new JingleContentDescriptionFileTransfer(payloads); + JingleFileTransferContentDescription descriptionFileTransfer = + new JingleFileTransferContentDescription(payloads); assertEquals(xml, descriptionFileTransfer.toXML().toString()); - JingleContentDescription parsed = new JingleContentDescriptionFileTransferProvider() + JingleContentDescription parsed = new JingleFileTransferContentDescriptionProvider() .parse(TestUtils.getParser(xml)); assertEquals(xml, parsed.toXML().toString()); - JingleFileTransferPayloadElement payload = (JingleFileTransferPayloadElement) parsed.getJinglePayloadTypes().get(0); + JingleFileTransferChildElement payload = (JingleFileTransferChildElement) parsed.getJinglePayloadTypes().get(0); assertEquals(date, payload.getDate()); assertEquals(descriptionString, payload.getDescription()); assertEquals(mediaTypeString, payload.getMediaType()); @@ -86,7 +87,7 @@ public class JingleContentDescriptionFileTransferTest extends SmackTestSuite { assertEquals(range, payload.getRange()); assertEquals(hashElement, payload.getHash()); - JingleContentDescriptionFileTransfer descriptionFileTransfer1 = new JingleContentDescriptionFileTransfer(null); + JingleFileTransferContentDescription descriptionFileTransfer1 = new JingleFileTransferContentDescription(null); assertNotNull(descriptionFileTransfer1.getJinglePayloadTypes()); } @@ -106,12 +107,12 @@ public class JingleContentDescriptionFileTransferTest extends SmackTestSuite { "" + "" + ""; - JingleFileTransferPayloadElement payload = new JingleFileTransferPayloadElement(null, null, null, null, null, -1, range); - ArrayList list = new ArrayList<>(); + JingleFileTransferChildElement payload = new JingleFileTransferChildElement(null, null, null, null, null, -1, range); + ArrayList list = new ArrayList<>(); list.add(payload); - JingleContentDescriptionFileTransfer fileTransfer = new JingleContentDescriptionFileTransfer(list); + JingleFileTransferContentDescription fileTransfer = new JingleFileTransferContentDescription(list); assertEquals(xml, fileTransfer.toXML().toString()); - JingleContentDescriptionFileTransfer parsed = new JingleContentDescriptionFileTransferProvider() + JingleFileTransferContentDescription parsed = new JingleFileTransferContentDescriptionProvider() .parse(TestUtils.getParser(xml)); assertEquals(xml, parsed.toXML().toString()); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionPayloadProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionPayloadProvider.java deleted file mode 100644 index 364167bdd..000000000 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionPayloadProvider.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * - * Copyright 2017 Paul Schaub - * - * 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 org.jivesoftware.smackx.jingle.provider; - -import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionPayloadElement; -import org.xmlpull.v1.XmlPullParser; - -/** - * Provider for JingleContentDescriptionPayloadElements. - */ -public abstract class JingleContentDescriptionPayloadProvider - extends ExtensionElementProvider { - - @Override - public abstract D parse(XmlPullParser parser, int initialDepth) throws Exception; -}