Move Third Party components to Argeo Distribution
[gpl/argeo-slc.git] / ext / javax.mail.mbox / src / com / sun / mail / remote / RemoteStore.java
diff --git a/ext/javax.mail.mbox/src/com/sun/mail/remote/RemoteStore.java b/ext/javax.mail.mbox/src/com/sun/mail/remote/RemoteStore.java
deleted file mode 100644 (file)
index faf9dd4..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package com.sun.mail.remote;
-
-import java.io.*;
-import javax.mail.*;
-import com.sun.mail.mbox.*;
-
-/**
- * A wrapper around a local <code>MboxStore</code> that fetches data
- * from the Inbox in a remote store and adds it to our local Inbox.
- */
-public abstract class RemoteStore extends MboxStore {
-
-    protected Store remoteStore;
-    protected Folder remoteInbox;
-    protected Folder inbox;
-    protected String host, user, password;
-    protected int port;
-    protected long lastUpdate = 0;
-
-    public RemoteStore(Session session, URLName url) {
-       super(session, url);
-       remoteStore = getRemoteStore(session, url);
-    }
-
-    /**
-     * Subclasses override this method to return the appropriate
-     * <code>Store</code> object.  This method will be called by
-     * the <code>RemoteStore</code> constructor.
-     */
-    protected abstract Store getRemoteStore(Session session, URLName url);
-
-    /**
-     * Connect to the store.
-     */
-    public void connect(String host, int port, String user, String password)
-                       throws MessagingException {
-       this.host = host;
-       this.port = port;
-       this.user = user;
-       this.password = password;
-       updateInbox();
-    }
-
-    /**
-     * Fetch any new mail in the remote INBOX and add it to the local INBOX.
-     */
-    protected void updateInbox() throws MessagingException {
-       // is it time to do an update yet?
-       // XXX - polling frequency, rules, etc. should be in properties
-       if (System.currentTimeMillis() < lastUpdate + (5 * 1000))
-           return;
-       try {
-           /*
-            * Connect to the remote store, using the saved
-            * authentication information.
-            */
-           remoteStore.connect(host, port, user, password);
-
-           /*
-            * If this store isn't connected yet, do it now, because
-            * it needs to be connected to get the INBOX folder.
-            */
-           if (!isConnected())
-               super.connect(host, port, user, password);
-           if (remoteInbox == null)
-               remoteInbox = remoteStore.getFolder("INBOX");
-           if (inbox == null)
-               inbox = getFolder("INBOX");
-           remoteInbox.open(Folder.READ_WRITE);
-           Message[] msgs = remoteInbox.getMessages();
-           inbox.appendMessages(msgs);
-           remoteInbox.setFlags(msgs, new Flags(Flags.Flag.DELETED), true);
-           remoteInbox.close(true);
-           remoteStore.close();
-       } catch (MessagingException ex) {
-           try {
-               if (remoteInbox != null && remoteInbox.isOpen())
-                   remoteInbox.close(false);
-           } finally {
-               if (remoteStore != null && remoteStore.isConnected())
-                   remoteStore.close();
-           }
-           throw ex;
-       }
-    }
-
-    public Folder getDefaultFolder() throws MessagingException {
-       checkConnected();
-
-       return new RemoteDefaultFolder(this, null);
-    }
-
-    public Folder getFolder(String name) throws MessagingException {
-       checkConnected();
-
-       if (name.equalsIgnoreCase("INBOX"))
-           return new RemoteInbox(this, name);
-       else
-           return super.getFolder(name);
-    }
-
-    public Folder getFolder(URLName url) throws MessagingException {
-       checkConnected();
-       return getFolder(url.getFile());
-    }
-
-    private void checkConnected() throws MessagingException {
-       if (!isConnected())
-           throw new MessagingException("Not connected");
-    }
-}