private StringBuilder makeStructGetter (InvarField f, TypeStruct struct)
    {
        Boolean bConst = !f.isMap() && !f.isVec() && (f.getUsePointer() || f.getUseReference());
        Boolean bConstBlock = !f.isMap() && !f.isVec();
        String sConst = snippetTryGet("refer.const") + whiteSpace;
        StringBuilder code = new StringBuilder();
        String s = snippetGet(Key.STRUCT_GETTER);
        s = replace(s, Token.TypeUpper, struct.getName());
        s = replace(s, Token.Type, f.getTypeFormatted());
        s = replace(s, Token.Specifier, makeStructFieldSpec(f, whiteSpace + whiteSpace));
        s = replace(s, Token.Name, f.getKey());
        s = replace(s, Token.NameReal, f.getRealKey());
        s = replace(s, Token.Index, f.getIndex().toString());
        s = replace(s, Token.Const, bConst ? sConst : empty);
        s = replace(s, Token.ConstBlock, bConstBlock ? whiteSpace + snippetTryGet("refer.const") : empty);
        code.append(s);
        return code;
    }