case Types.ATTRIBUTE_LIST: if (resident) { return new AttributeListAttributeRes(fileRecord, offset); } else { return new AttributeListAttributeNonRes(fileRecord, offset); }
    public static NTFSAttribute getAttribute(FileRecord fileRecord,            int offset) {        final int type = fileRecord.getUInt32AsInt(offset + 0x00);        switch (type) {        case Types.FILE_NAME:            return new FileNameAttribute(fileRecord, offset);        case Types.INDEX_ROOT:            return new IndexRootAttribute(fileRecord, offset);        case Types.INDEX_ALLOCATION:            return new IndexAllocationAttribute(fileRecord, offset);        }        // check the resident flag        if (fileRecord.getUInt8(offset + 0x08) == 0) {            // resident            return new NTFSResidentAttribute(fileRecord, offset);        } else {            // non resident            return new NTFSNonResidentAttribute(fileRecord, offset);        }    }