MamV1ElementFactory.java

  1. /**
  2.  *
  3.  * Copyright © 2016-2021 Florian Schmaus and Frank Matheron
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *     http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package org.jivesoftware.smackx.mam.element;

  18. import java.util.List;
  19. import javax.xml.namespace.QName;

  20. import org.jivesoftware.smack.packet.Message;
  21. import org.jivesoftware.smackx.forward.packet.Forwarded;
  22. import org.jivesoftware.smackx.rsm.packet.RSMSet;
  23. import org.jivesoftware.smackx.xdata.packet.DataForm;

  24. import org.jxmpp.jid.Jid;

  25. class MamV1ElementFactory implements MamElementFactory {

  26.     @Override
  27.     public MamElements.MamResultExtension newResultExtension(String queryId, String id, Forwarded<Message> forwarded) {
  28.         return new MamV1ResultExtension(queryId, id, forwarded);
  29.     }

  30.     @Override
  31.     public MamFinIQ newFinIQ(String queryId, RSMSet rsmSet, boolean complete, boolean stable) {
  32.         return new MamFinIQ(MamVersion.MAM1, queryId, rsmSet, complete, stable);
  33.     }

  34.     @Override
  35.     public MamPrefsIQ newPrefsIQ(List<Jid> alwaysJids, List<Jid> neverJids, MamPrefsIQ.DefaultBehavior defaultBehavior) {
  36.         return new MamPrefsIQ(MamVersion.MAM1, alwaysJids, neverJids, defaultBehavior);
  37.     }

  38.     @Override
  39.     public MamPrefsIQ newPrefsIQ() {
  40.         return new MamPrefsIQ(MamVersion.MAM1);
  41.     }

  42.     @Override
  43.     public MamQueryIQ newQueryIQ(String queryId, String node, DataForm dataForm) {
  44.         return new MamQueryIQ(MamVersion.MAM1, queryId, node, dataForm);
  45.     }

  46.     public static class MamV1ResultExtension extends MamElements.MamResultExtension {
  47.         /**
  48.          * The qualified name of the MAM result extension element.
  49.          */
  50.         public static final QName QNAME = new QName(MamVersion.MAM1.getNamespace(), ELEMENT);

  51.         MamV1ResultExtension(String queryId, String id, Forwarded<Message> forwarded) {
  52.             super(MamVersion.MAM1, queryId, id, forwarded);
  53.         }
  54.     }
  55. }