MCPcopy Create free account
hub / github.com/boazy/TWEditorEnhanced / encodeField

Method encodeField

src/main/java/Database.java:593–779  ·  view source on GitHub ↗
(DBElement element)

Source from the content-addressed store, hash-verified

591 }
592
593 private int encodeField(DBElement element)
594 throws DBException
595 {
596 int fieldType = element.getType();
597
598 String fieldLabel = element.getLabel();
599 if (fieldLabel.length() == 0) {
600 throw new DBException("Field does not have a label");
601 }
602 byte[] labelBytes = fieldLabel.getBytes();
603 byte[] label = new byte[16];
604 boolean match = false;
605 System.arraycopy(labelBytes, 0, label, 0, Math.min(labelBytes.length, 16));
606 int labelIndex;
607 for (labelIndex = 0; labelIndex < this.labelArrayCount; labelIndex++) {
608 int labelOffset = labelIndex * 16;
609 match = true;
610 for (int i = 0; i < 16; i++) {
611 if (this.labelBuffer[(labelOffset + i)] != label[i]) {
612 match = false;
613 break;
614 }
615 }
616
617 if (match) {
618 break;
619 }
620 }
621 if (!match) {
622 if (this.labelArrayCount == this.labelArraySize) {
623 this.labelArraySize += 1000;
624 byte[] buffer = new byte[16 * this.labelArraySize];
625 System.arraycopy(this.labelBuffer, 0, buffer, 0, this.labelArrayCount * 16);
626 this.labelBuffer = buffer;
627 }
628
629 labelIndex = this.labelArrayCount++;
630 int labelOffset = labelIndex * 16;
631 System.arraycopy(label, 0, this.labelBuffer, labelOffset, 16);
632 }
633
634 Object fieldValue = element.getValue();
635 int dataOffset;
636 switch (fieldType) {
637 case 15:
638 dataOffset = encodeList(element);
639 break;
640 case 14:
641 dataOffset = encodeStruct(element);
642 break;
643 case 0:
644 dataOffset = ((Integer)fieldValue).intValue() & 0xFF;
645 break;
646 case 1:
647 dataOffset = ((Character)fieldValue).charValue() & 0xFFFF;
648 break;
649 case 2:
650 case 3:

Callers 1

encodeStructMethod · 0.95

Calls 13

encodeListMethod · 0.95
encodeStructMethod · 0.95
setFieldDataMethod · 0.95
setIntegerMethod · 0.95
getSubstringCountMethod · 0.95
getSubstringMethod · 0.95
getStringMethod · 0.95
getStringReferenceMethod · 0.95
getLanguageMethod · 0.95
getGenderMethod · 0.95
getTypeMethod · 0.45
getLabelMethod · 0.45

Tested by

no test coverage detected