assert defn.getTypeCode( ) == PropertyType.STRUCT_REF_TYPE;
assert defn.getTypeCode( ) == IPropertyType.STRUCT_REF_TYPE;
	public static StructRefValue resolve( Module module, PropertyDefn defn,			String name )	{		if ( StringUtil.isBlank( name ) || defn == null || module == null )			return null;		assert defn.getTypeCode( ) == PropertyType.STRUCT_REF_TYPE;		StructureDefn targetDefn = (StructureDefn) defn.getStructDefn( );		assert targetDefn != null;		Structure target = null;		// the module which the target structure lies		Module targetModule = null;		// if the property is a structure reference like "imageName", then the		// name should not contain "namespace" prefix		// TODO: the embeddedImage has "." in the name which will cause the		// nemaspace ambiguity.		if ( ReferencableStructure.LIB_REFERENCE_MEMBER				.equals( defn.getName( ) ) )		{			String structName = StringUtil.extractName( name );			String namespace = StringUtil.extractNamespace( name );			targetModule = module.getLibraryWithNamespace( namespace );			if ( targetModule != null )			{				target = findStructure( targetModule, targetDefn, structName );				if ( target != null )					return new StructRefValue( namespace, target );			}			// if the target module is null or target structure is null, then			// value is unresolved			return new StructRefValue( namespace, structName );		}		else		{			StructRefValue refValue = (StructRefValue) resolveStructureWithName(					module, targetDefn, name );			return refValue;		}	}