// Path: src/org/gearman/util/ByteArray.java
// public final class ByteArray {
// 	private final byte[] array;
// 	
// 	public ByteArray(final byte[] array) {
// 		this.array = array;
// 	}
// 	
// 	@Override
// 	public final int hashCode() {
// 		return Arrays.hashCode(array);
// 	}
// 	
// 	public final byte[] getBytes() {
// 		return array.clone();
// 	}
// 	
// 	public final String toString(Charset charset) {
// 		return new String(array, charset);
// 	}
// 	
// 	@Override
// 	public final String toString() {
// 		return new String(array);
// 	}
// 	
// 	@Override
// 	public final boolean equals(final Object obj) {
// 		if(obj instanceof ByteArray)
// 			return this.equals((ByteArray)obj);
// 		else if(obj instanceof byte[])
// 			return this.equals((byte[])obj);
// 		else
// 			return false;
// 	}
// 	
// 	public final boolean equals(final ByteArray array) {
// 		return this == array || this.equals(array.array);
// 	}
// 	
// 	public final boolean equals(final byte[] array) {
// 		return Arrays.equals(this.array, array);
// 	}
// }
// 
// Path: src/org/gearman/ServerJob.java
// public static enum JobPriority {
// 	LOW, MID, HIGH
// };


import org.gearman.util.ByteArray;
import org.gearman.ServerJob.JobPriority;
package org.gearman;






public class GMServerFunctionMap {
	

	public static final String GM_TASK = "gm_task";
	public static final ByteArray GM_TASK_BA = new ByteArray(GM_TASK.getBytes());
	
	
	public final ServerFunction getFunction(ServerFunctionMap map, ByteArray name){
		
		
		if (name.toString().equals(GM_TASK)){
			return new GMServerFunction();
			
		}
		
		return map.getFunction(name);
	}
	
	class GMServerFunction implements ServerFunction{
		
		public void removeJobs(){
			
		}
		
		public void wakeUp(){
			
			
		}
		
		public Integer getWorkingCount(){
			
			return null;
		}
		
		public void addNoopable(final ServerClient noopable) {
			// DO NOTHING
		}
		public void removeNoopable(final ServerClient noopable){
			// DO NOTHING
		}
		public void setMaxQueue(final int size){
			//DO NOTHING
			
		}
		
		public ByteArray getName(){
			
			return GM_TASK_BA;
			
			
		}
		
		public boolean queueIsEmpty(){
			
			return GMServerFunctionMap.this.isQueueEmpty();
		}
		
// Path: src/org/gearman/util/ByteArray.java
// public final class ByteArray {
// 	private final byte[] array;
// 	
// 	public ByteArray(final byte[] array) {
// 		this.array = array;
// 	}
// 	
// 	@Override
// 	public final int hashCode() {
// 		return Arrays.hashCode(array);
// 	}
// 	
// 	public final byte[] getBytes() {
// 		return array.clone();
// 	}
// 	
// 	public final String toString(Charset charset) {
// 		return new String(array, charset);
// 	}
// 	
// 	@Override
// 	public final String toString() {
// 		return new String(array);
// 	}
// 	
// 	@Override
// 	public final boolean equals(final Object obj) {
// 		if(obj instanceof ByteArray)
// 			return this.equals((ByteArray)obj);
// 		else if(obj instanceof byte[])
// 			return this.equals((byte[])obj);
// 		else
// 			return false;
// 	}
// 	
// 	public final boolean equals(final ByteArray array) {
// 		return this == array || this.equals(array.array);
// 	}
// 	
// 	public final boolean equals(final byte[] array) {
// 		return Arrays.equals(this.array, array);
// 	}
// }
// 
// Path: src/org/gearman/ServerJob.java
// public static enum JobPriority {
// 	LOW, MID, HIGH
// };


// Path: src/org/gearman/GMServerFunctionMap.java
import org.gearman.util.ByteArray;
import org.gearman.ServerJob.JobPriority;

package org.gearman;






public class GMServerFunctionMap {
	

	public static final String GM_TASK = "gm_task";
	public static final ByteArray GM_TASK_BA = new ByteArray(GM_TASK.getBytes());
	
	
	public final ServerFunction getFunction(ServerFunctionMap map, ByteArray name){
		
		
		if (name.toString().equals(GM_TASK)){
			return new GMServerFunction();
			
		}
		
		return map.getFunction(name);
	}
	
	class GMServerFunction implements ServerFunction{
		
		public void removeJobs(){
			
		}
		
		public void wakeUp(){
			
			
		}
		
		public Integer getWorkingCount(){
			
			return null;
		}
		
		public void addNoopable(final ServerClient noopable) {
			// DO NOTHING
		}
		public void removeNoopable(final ServerClient noopable){
			// DO NOTHING
		}
		public void setMaxQueue(final int size){
			//DO NOTHING
			
		}
		
		public ByteArray getName(){
			
			return GM_TASK_BA;
			
			
		}
		
		public boolean queueIsEmpty(){
			
			return GMServerFunctionMap.this.isQueueEmpty();
		}
		
		public void createJob(final ByteArray uniqueID, final byte[] data, final JobPriority priority, final ServerClient creator, boolean isBackground){