public PrimaryData arrayLoad(ProgramBlock<?> block, Param dim) {
		IParam owner = null;
		
		if(expression != null) {
			owner = expression;
		} else if (StringUtils.isNotBlank(superMember)) {
			owner = block.super_().field(superMember);
		} else if (allocation != null) {
			owner = allocation;
		} else if (StringUtils.isNotBlank(name)) {
			owner = name2Param(block, name);
		} else if (value != null) {
			owner = value;
		}
		
		if(owner != null) {
			PrimaryData data = new PrimaryData();
			data.value = block.arrayLength((Param)owner, dim);
			return data;
		}
		
		return null;
	}