${programmers} A ${finder} can: * Look up an existing ${entity} by a String key; or * Create an object from a String (ie, parse it) It was originally designed for the first case above, hence the name !3 Entity Lookup For example, here's a ${finder} for an ${entity} class ''User'': ----{{{ public User findUser(String s) { return users.get(s); } }}}----This assumes that the ''Map'' of ''users'' maps from the name to the corresponding ''User''. It can be convenient to have the ${finder} also create the Entity when the String is sufficient to completely descrive the Entity. For example, here's a finder for a ''State'', which simply has a name: ----{{{ public User findUser(String s) { State state = states.get(s); if (state == null) { state = new State(s); states.put(s,state); } return state ; } }}}----For a full example, see .FitLibrary.SpecifiCations.ParserSpecifications.EntityParser.SimpleExample !3 Parsing For example, here's a ${finder} that treats the String "null" as a null value instead of a String: ----{{{ public String findString(String s) { if (s.equals("null")) return null; return s; } }}}----For a full example, see .FitLibrary.SpecifiCations.ParserSpecifications.EntityParser.FinderAsSpecialisedParser