Clazz.load(["java.util.AbstractSet","$.Set"],"java.util.HashSet",["java.util.HashMap"],function(){
c$=Clazz.decorateAsClass(function(){
this.backingMap=null;
Clazz.instantialize(this,arguments);
},java.util,"HashSet",java.util.AbstractSet,[java.util.Set,Cloneable,java.io.Serializable]);
Clazz.makeConstructor(c$,
function(){
this.construct(new java.util.HashMap());
});
Clazz.makeConstructor(c$,
function(capacity){
this.construct(new java.util.HashMap(capacity));
},"~N");
Clazz.makeConstructor(c$,
function(capacity,loadFactor){
this.construct(new java.util.HashMap(capacity,loadFactor));
},"~N,~N");
Clazz.makeConstructor(c$,
function(collection){
this.construct(new java.util.HashMap(collection.size()<6?11:collection.size()*2));
for(var e,$e=collection.iterator();$e.hasNext()&&((e=$e.next())||true);){
this.add(e);
}
},"java.util.Collection");
Clazz.makeConstructor(c$,
function(backingMap){
Clazz.superConstructor(this,java.util.HashSet,[]);
this.backingMap=backingMap;
},"java.util.HashMap");
Clazz.overrideMethod(c$,"add",
function(object){
return this.backingMap.put(object,this)==null;
},"~O");
Clazz.overrideMethod(c$,"clear",
function(){
this.backingMap.clear();
});
Clazz.defineMethod(c$,"clone",
function(){
try{
var clone=Clazz.superCall(this,java.util.HashSet,"clone",[]);
clone.backingMap=this.backingMap.clone();
return clone;
}catch(e){
if(Clazz.instanceOf(e,CloneNotSupportedException)){
return null;
}else{
throw e;
}
}
});
Clazz.overrideMethod(c$,"contains",
function(object){
return this.backingMap.containsKey(object);
},"~O");
Clazz.overrideMethod(c$,"isEmpty",
function(){
return this.backingMap.isEmpty();
});
Clazz.defineMethod(c$,"iterator",
function(){
return this.backingMap.keySet().iterator();
});
Clazz.overrideMethod(c$,"remove",
function(object){
return this.backingMap.remove(object)!=null;
},"~O");
Clazz.overrideMethod(c$,"size",
function(){
return this.backingMap.size();
});
Clazz.defineMethod(c$,"createBackingMap",
function(capacity,loadFactor){
return new java.util.HashMap(capacity,loadFactor);
},"~N,~N");
});
