private Specification getSpecification( final String identifier, final String version ) { Collection c = (Collection) this.specifications.get( identifier ); if ( c == null ) { c = new LinkedList(); this.specifications.put( identifier, c ); } Specification specification = null; for ( final Iterator it = c.iterator(); it.hasNext(); ) { final Specification s = (Specification) it.next(); if ( s.getVersion() == null ? version == null : s.getVersion().equals( version ) ) { specification = s; break; } } if ( specification == null ) { specification = new Specification(); specification.setIdentifier( identifier ); specification.setVersion( version ); c.add( specification ); } return specification; }