Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,8 @@ public interface Atom extends Cloneable, PDBRecord {

/**
* Get alternate Location.
* @return a Character object representing the alt loc value
* @return a Character object representing the alt loc value. Default altLoc ('.' in mmCIF files)
* is represented by ' ' (space character, ascii 32).
* @see #setAltLoc
*/
public Character getAltLoc();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,6 @@ public void setZ(double z) {
@Override
public double getZ() { return coords.z; }

/**
* Set alternate Location.
* @see #getAltLoc
*/
@Override
public void setAltLoc(Character c) {
// after changing altLoc from Character to char, we do this to keep the interface the same as it used to be - JD 2016-01-27
Expand All @@ -170,11 +166,6 @@ public void setAltLoc(Character c) {
altLoc = c ;
}

/**
* Get alternate Location.
* @return a Character object representing the alt loc value
* @see #setAltLoc
*/
@Override
public Character getAltLoc() {
// after changing altLoc from Character to char, we do this to keep the interface the same as it used to be - JD 2016-01-27
Expand Down Expand Up @@ -309,7 +300,7 @@ public void setBonds(List<Bond> bonds) {
@Override
public void addBond(Bond bond) {
if (bonds==null) {
bonds = new ArrayList<Bond>(BONDS_INITIAL_CAPACITY);
bonds = new ArrayList<>(BONDS_INITIAL_CAPACITY);
}
bonds.add(bond);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,13 @@ public interface Group extends Serializable {

/**
* Set the atoms of this group.
* @see {@link Atom}
* @see Atom
* @param atoms a list of atoms
*/
public void setAtoms(List<Atom> atoms);

/** Remove all atoms from this group.
/**
* Remove all atoms from this group.
*
*/
public void clearAtoms();
Expand All @@ -118,13 +119,14 @@ public interface Group extends Serializable {
* Beware that some PDB atom names are ambiguous (e.g. CA, which means C-alpha or Calcium),
* ambiguities should not occur within the same group though. To solve these ambiguities
* one would need to check the atom returned for the required element with {@link Atom#getElement()}
* <p>
* Note this method will return only the atom in the default alternative location (be it '.' or a letter).
*
* @param name a trimmed String representing the atom's PDB name, e.g. "CA"
* @return an Atom object or null if no such atom exists within this group
*/
public Atom getAtom(String name) ;



/**
* Get at atom by position.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public class HetatomImpl implements Group {
* Behaviors for how to balance memory vs. performance.
* @author Andreas Prlic
*/
public static enum PerformanceBehavior {
public enum PerformanceBehavior {

/** use a built-in HashMap for faster access to memory, at the price of more memory consumption */
BETTER_PERFORMANCE_MORE_MEMORY,
Expand All @@ -87,7 +87,7 @@ public static enum PerformanceBehavior {

}

public static PerformanceBehavior performanceBehavior=PerformanceBehavior.LESS_MEMORY_SLOWER_PERFORMANCE;
private static PerformanceBehavior performanceBehavior=PerformanceBehavior.LESS_MEMORY_SLOWER_PERFORMANCE;

private Map<String,Atom> atomNameLookup;

Expand All @@ -105,42 +105,28 @@ public HetatomImpl() {
pdb_name = null ;

residueNumber = null;
atoms = new ArrayList<Atom>();
properties = new HashMap<String,Object>();
atoms = new ArrayList<>();
properties = new HashMap<>();
parent = null;
chemComp = null;
altLocs = null;

if ( performanceBehavior == PerformanceBehavior.BETTER_PERFORMANCE_MORE_MEMORY)
atomNameLookup = new HashMap<String,Atom>();
atomNameLookup = new HashMap<>();
else
atomNameLookup = null;
}


/**
* returns true or false, depending if this group has 3D coordinates or not.
* @return true if Group has 3D coordinates
*/
@Override
public boolean has3D() {
return pdb_flag;
}

/** flag if group has 3D data.
*
* @param flag true to set flag that this Group has 3D coordinates
*/
@Override
public void setPDBFlag(boolean flag){
pdb_flag = flag ;
}

/** Set three character name of Group .
*
* @param s a String specifying the PDBName value
* @see #getPDBName
*/
@Override
public void setPDBName(String s) {
// hetatoms can have pdb_name length < 3. e.g. CU (see 1a4a position 1200 )
Expand All @@ -152,12 +138,6 @@ public void setPDBName(String s) {

}

/**
* Returns the PDBName.
*
* @return a String representing the PDBName value
* @see #setPDBName
*/
@Override
public String getPDBName() { return pdb_name;}

Expand Down Expand Up @@ -187,12 +167,8 @@ public void addAtom(Atom atom){
logger.warn("An atom with name " + atom.getName() + " " + altLocStr + " is already present in group: " + this.toString() + ". The atom with serial " + atom.getPDBserial() + " will be ignored in look-ups.");
}
}
};

}

/** remove all atoms
*
*/
@Override
public void clearAtoms() {
atoms.clear();
Expand Down Expand Up @@ -245,8 +221,7 @@ public Atom getAtom(String name) {
if ( atomNameLookup != null)
return atomNameLookup.get(name);
else {
/** This is the performance penalty we pay for NOT using the atomnameLookup in PerformanceBehaviour.LESS_MEMORY_SLOWER_PERFORMANCE
*/
// This is the performance penalty we pay for NOT using the atomnameLookup in PerformanceBehaviour.LESS_MEMORY_SLOWER_PERFORMANCE
for (Atom a : atoms) {
if (a.getName().equals(name)) {
return a;
Expand Down Expand Up @@ -279,16 +254,13 @@ public boolean hasAtom(String fullName) {
Atom a = atomNameLookup.get(fullName.trim());
return a != null;
} else {
/** This is the performance penalty we pay for NOT using the atomnameLookup in PerformanceBehaviour.LESS_MEMORY_SLOWER_PERFORMANCE
*/
// This is the performance penalty we pay for NOT using the atomnameLookup in PerformanceBehaviour.LESS_MEMORY_SLOWER_PERFORMANCE
for (Atom a : atoms) {
if (a.getName().equals(fullName)) {
return true;
}
}
return false;


}

}
Expand Down Expand Up @@ -400,42 +372,21 @@ public void setProperties(Map<String,Object> props) {
properties = props ;
}

/** return properties.
*
* @return a HashMap object representing the properties value
* @see #setProperties
*/
@Override
public Map<String, Object> getProperties() {
return properties ;
}

/** set a single property .
*
* @see #getProperties
* @see #getProperty
*/
@Override
public void setProperty(String key, Object value){
properties.put(key,value);
}

/** get a single property .
* @param key a String
* @return an Object
* @see #setProperty
* @see #setProperties
*/
@Override
public Object getProperty(String key){
return properties.get(key);
}


/** return an AtomIterator.
*
* @return an Iterator object
*/
@Override
public Iterator<Atom> iterator() {
return new AtomIterator(this);
Expand Down Expand Up @@ -588,7 +539,7 @@ public boolean hasAltLoc() {
@Override
public List<Group> getAltLocs() {
if ( altLocs == null)
return new ArrayList<Group>();
return new ArrayList<>();
return altLocs;
}

Expand Down Expand Up @@ -629,7 +580,7 @@ public Group getAltLocGroup(Character altLoc) {
@Override
public void addAltLoc(Group group) {
if ( altLocs == null) {
altLocs = new ArrayList<Group>();
altLocs = new ArrayList<>();
}
altLocs.add(group);

Expand All @@ -640,10 +591,6 @@ public boolean isWater() {
return GroupType.WATERNAMES.contains(pdb_name);
}

/** attempts to reduce the memory imprint of this group by trimming
* all internal Collection objects to the required size.
*
*/
@Override
public void trimToSize(){

Expand All @@ -663,10 +610,10 @@ public void trimToSize(){
}

// now let's fit the hashmaps to size
properties = new HashMap<String, Object>(properties);
properties = new HashMap<>(properties);

if ( atomNameLookup != null)
atomNameLookup = new HashMap<String,Atom>(atomNameLookup);
atomNameLookup = new HashMap<>(atomNameLookup);

}

Expand Down
Loading