MCPcopy Create free account
hub / github.com/java-native-access/jna / getFields

Method getFields

src/com/sun/jna/Structure.java:1127–1163  ·  view source on GitHub ↗

Returns all field names (sorted) provided so far by #getFieldOrder @param force set if results are required immediately @return null if not yet able to provide fields, and force is false. @throws Error if force is true and field order data not yet specified

(boolean force)

Source from the content-addressed store, hash-verified

1125 and can't be generated automatically.
1126 **/
1127 protected List<Field> getFields(boolean force) {
1128 List<Field> flist = new ArrayList<>(getFieldList());
1129 Set<String> names = new HashSet<>();
1130 for (Field f : flist) {
1131 names.add(f.getName());
1132 }
1133
1134 List<String> fieldOrder = fieldOrder();
1135 if (fieldOrder.size() != flist.size() && flist.size() > 1) {
1136 if (force) {
1137 throw new Error("Structure.getFieldOrder() on " + getClass()
1138 + (fieldOrder.size() < flist.size()
1139 ? " does not provide enough"
1140 : " provides too many")
1141 + " names [" + fieldOrder.size()
1142 + "] ("
1143 + sort(fieldOrder)
1144 + ") to match declared fields [" + flist.size()
1145 + "] ("
1146 + sort(names)
1147 + ")");
1148 }
1149 return null;
1150 }
1151
1152 Set<String> orderedNames = new HashSet<>(fieldOrder);
1153 if (!orderedNames.equals(names)) {
1154 throw new Error("Structure.getFieldOrder() on " + getClass()
1155 + " returns names ("
1156 + sort(fieldOrder)
1157 + ") which do not match declared field names ("
1158 + sort(names) + ")");
1159 }
1160
1161 sortFields(flist, fieldOrder);
1162 return flist;
1163 }
1164
1165 /** Calculate the amount of native memory required for this structure.
1166 * May return {@link #CALCULATE_SIZE} if the size can not yet be

Callers 2

deriveLayoutMethod · 0.95
loadLibraryInstanceMethod · 0.45

Calls 8

getFieldListMethod · 0.95
fieldOrderMethod · 0.95
sortMethod · 0.95
sortFieldsMethod · 0.95
getNameMethod · 0.65
addMethod · 0.45
sizeMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected