X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Futil%2Ffreenet%2Ffcp2%2FPriorityClass.java;h=729acc175a1c73539a6f39e73f7b1c75695ac16a;hb=53c860450fde63ab927a457611e49e94ce2649db;hp=9f9ea0ede039b6707da6d5f395b4f0900d757932;hpb=6f1a8216cfba28add0ef365b46a08d16d4eb87fe;p=jSite.git diff --git a/src/de/todesbaum/util/freenet/fcp2/PriorityClass.java b/src/de/todesbaum/util/freenet/fcp2/PriorityClass.java index 9f9ea0e..729acc1 100644 --- a/src/de/todesbaum/util/freenet/fcp2/PriorityClass.java +++ b/src/de/todesbaum/util/freenet/fcp2/PriorityClass.java @@ -1,6 +1,5 @@ /* - * todesbaum-lib - - * Copyright (C) 2006 David Roden + * jSite - PriorityClass.java - Copyright © 2006–2012 David Roden * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,39 +19,95 @@ package de.todesbaum.util.freenet.fcp2; /** + * The possible priority classes. Possible values are, in order of descending + * priority: maximum (anything more important than fproxy), + * interactive (fproxy), semi-interactive (fproxy + * immediate mode large file downloads, not to disk), updatable + * (updatable site checks), bulk (large file downloads to disk), + * prefetch, minimum. + * * @author David Roden <droden@gmail.com> - * @version $Id: PriorityClass.java 356 2006-03-24 15:13:38Z bombe $ + * @version $Id$ */ public final class PriorityClass { + /** Denotes maximum priority class. */ public static final PriorityClass MAXIMUM = new PriorityClass("maximum", 0); + + /** Denotes interactive priority class. */ public static final PriorityClass INTERACTIVE = new PriorityClass("interactive", 1); + + /** Denotes semi-interactive priority class. */ public static final PriorityClass SEMI_INTERACTIVE = new PriorityClass("semiInteractive", 2); + + /** Denotes updatable priority class. */ public static final PriorityClass UPDATABLE = new PriorityClass("updatable", 3); + + /** Denotes bulk priority class. */ public static final PriorityClass BULK = new PriorityClass("bulk", 4); + + /** Denotes prefetch priority class. */ public static final PriorityClass PREFETCH = new PriorityClass("prefetch", 5); + + /** Denotes minimum priority class. */ public static final PriorityClass MINIMUM = new PriorityClass("minimum", 6); + /** The name of the priority class. */ private String name; + + /** The value of the priority class. */ private int value; + /** + * Creates a new priority class with the specified name and value. + * + * @param name + * The name of the priority class + * @param value + * The value of the priority class + */ private PriorityClass(String name, int value) { this.name = name; this.value = value; } /** - * @return Returns the name. + * Returns the name of this priority class. + * + * @return The name of this priority class */ public String getName() { return name; } /** - * @return Returns the value. + * Returns the value of this priority class. + * + * @return The value of this priority class */ public int getValue() { return value; } + // + // STATIC METHODS + // + + /** + * Returns the priority class with the given name, matched case-insensitive. + * + * @param value + * The name of the priority + * @return The priority with the given name, or {@code null} if no priority + * matches the given name + */ + public static PriorityClass valueOf(String value) { + for (PriorityClass priorityClass : new PriorityClass[] { MINIMUM, PREFETCH, BULK, UPDATABLE, SEMI_INTERACTIVE, INTERACTIVE, MAXIMUM }) { + if (priorityClass.getName().equalsIgnoreCase(value)) { + return priorityClass; + } + } + return null; + } + }