}
public static InLink getTarget(LinkProperties link) {	String recName = link.getRecord();	// !!! check for getType()==LinkProperties.NOT_VALID	if ((recName==null) || recName.equals(nullString)) return null;	InLink templateLink = (InLink)DataProvider.getInstance().getLookupTable().get(link.getTarget());	if (templateLink!=null)		return templateLink;	Record record = (Record)Group.getRoot().findObject(recName, true);	if (record==null) return null;	else if (link.getType()==link.FWDLINK_FIELD) {		if (!link.getVarName().equalsIgnoreCase("PROC"))		// !!! proc			return record;	}	EPICSVarLink var = null;	if (record.containsObject(link.getVarName()))		var = (EPICSVarLink)record.getSubObject(link.getVarName());	else {		VDBFieldData target = record.getRecordData().getField(link.getVarName());		if ((target==null) ||			LinkProperties.getType(target)!=LinkProperties.VARIABLE_FIELD) return null;		else { 			var = new EPICSVarLink(record, target);			record.addLink(var);		}	}	return var;}