code: @Override
  	public void addAtom(Atom atom){
  		atom.setGroup(this);
  		atoms.add(atom);
  		// TODO this check is useless, coords are always !=null since they are initialized to 0,0,0 in AtomImpl constructor. We need to review this - JD 2016-09-14
  		if (atom.getCoordsAsPoint3d() != null){
  			// we have got coordinates!
  			setPDBFlag(true);
  		}
  
  		if (atomNameLookup != null){
  
  			Atom existingAtom = atomNameLookup.put(atom.getName(), atom);
  
  			// if an atom with same name is added to the group that has to be some kind of problem,
  			// we need to warn properly
  			if (existingAtom != null) {
  				String altLocStr = "";
  				char altLoc = atom.getAltLoc();
  				if (altLoc != ' ') altLocStr = "(alt loc '" + altLoc + "')";
  				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.");
  			}
  		}
  	}
docs: {@inheritDoc}