Package freenet.keys

Source Code of freenet.keys.BaseClientKey

/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.keys;

import java.io.Serializable;
import java.net.MalformedURLException;

/**
* Anything that a Node can fetch.
* Base class of ClientKey; non-ClientKey subclasses are things like USKs, which
* don't directly translate to a routing key.
*
* WARNING: Changing non-transient members on classes that are Serializable can result in
* restarting downloads or losing uploads.
*/
public abstract class BaseClientKey implements Serializable {

    private static final long serialVersionUID = 1L;

    public static BaseClientKey getBaseKey(FreenetURI origURI) throws MalformedURLException {
    String keyType = origURI.getKeyType();
    if("CHK".equals(keyType))
      return new ClientCHK(origURI);
    if("SSK".equals(keyType))
      return new ClientSSK(origURI);
    if("KSK".equals(keyType))
      return ClientKSK.create(origURI.getDocName());
    if("USK".equals(keyType))
      return USK.create(origURI);
    throw new MalformedURLException("Unknown keytype from "+origURI);
  }
 
  public abstract FreenetURI getURI();
 
  protected BaseClientKey() {
      // For serialization.
  }

}
TOP

Related Classes of freenet.keys.BaseClientKey

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.