From 7d3261ea45d2506fcfddcb4b10a11f8d9fb1058d Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Sun, 22 Sep 2019 09:59:15 -0400 Subject: [PATCH] REOC-58 upgrade the version for commons-lang3 --- build.gradle | 3 +- .../reoc/rets/client/CommonsHttpClient.java | 2 +- .../client/CommonsHttpClientResponse.java | 4 +- .../reoc/rets/client/GetMetadataRequest.java | 2 +- .../reoc/rets/client/GetMetadataResponse.java | 2 +- .../reoc/rets/client/GetObjectRequest.java | 4 +- .../reoc/rets/client/GetObjectResponse.java | 2 +- .../client/GetObjectResponseIterator.java | 2 +- .../client/InvalidReplyCodeException.java | 2 +- .../reoc/rets/client/KeyValueResponse.java | 4 +- .../ossez/reoc/rets/client/LoginResponse.java | 4 +- .../rets/client/MetaCollectorAdapter.java | 2 +- .../ossez/reoc/rets/client/RetsException.java | 7 +- .../reoc/rets/client/RetsHttpRequest.java | 4 +- .../com/ossez/reoc/rets/client/RetsUtil.java | 73 +- .../ossez/reoc/rets/client/RetsVersion.java | 4 +- .../StreamingSearchResultProcessor.java | 9 +- .../reoc/rets/common/metadata/MetaObject.java | 6 +- .../common/metadata/MetadataException.java | 3 +- .../common/metadata/attrib/AttrVersion.java | 2 +- .../rets/examples/RetsGetMetadataExample.java | 10 +- .../reoc/rets/examples/RetsSearchExample.java | 2 +- target/classes/build.xml | 2 +- .../client/BrokerCodeRequredException.class | Bin 742 -> 0 bytes .../realtors/rets/client/CapabilityUrls.class | Bin 4494 -> 0 bytes .../rets/client/ChangePasswordRequest.class | Bin 2382 -> 0 bytes .../rets/client/ChangePasswordResponse.class | Bin 1638 -> 0 bytes .../CollectionOfCollectionsIterator.class | Bin 1136 -> 0 bytes .../rets/client/CommonsHttpClient.class | Bin 9961 -> 0 bytes .../client/CommonsHttpClientResponse$1.class | Bin 1322 -> 0 bytes .../client/CommonsHttpClientResponse.class | Bin 3937 -> 0 bytes .../rets/client/CompactRowPolicy$1.class | Bin 977 -> 0 bytes .../rets/client/CompactRowPolicy$2.class | Bin 1118 -> 0 bytes .../rets/client/CompactRowPolicy$3.class | Bin 1293 -> 0 bytes .../rets/client/CompactRowPolicy$4.class | Bin 1175 -> 0 bytes .../rets/client/CompactRowPolicy.class | Bin 773 -> 0 bytes .../rets/client/GenericHttpRequest.class | Bin 867 -> 0 bytes .../rets/client/GetMetadataRequest.class | Bin 2940 -> 0 bytes .../rets/client/GetMetadataResponse.class | Bin 3522 -> 0 bytes .../rets/client/GetObjectIterator.class | Bin 327 -> 0 bytes .../rets/client/GetObjectRequest.class | Bin 3757 -> 0 bytes .../rets/client/GetObjectResponse$1.class | Bin 1086 -> 0 bytes .../rets/client/GetObjectResponse.class | Bin 5804 -> 0 bytes .../client/GetObjectResponseIterator$1.class | Bin 1633 -> 0 bytes .../client/GetObjectResponseIterator.class | Bin 5026 -> 0 bytes .../client/InvalidArgumentException.class | Bin 433 -> 0 bytes .../client/InvalidHttpStatusException.class | Bin 1070 -> 0 bytes .../client/InvalidReplyCodeException.class | Bin 1691 -> 0 bytes .../client/InvalidReplyCodeHandler$1.class | Bin 787 -> 0 bytes .../rets/client/InvalidReplyCodeHandler.class | Bin 591 -> 0 bytes .../rets/client/KeyValueResponse.class | Bin 4576 -> 0 bytes .../realtors/rets/client/LoginRequest.class | Bin 1130 -> 0 bytes .../realtors/rets/client/LoginResponse.class | Bin 6601 -> 0 bytes .../realtors/rets/client/LogoutRequest.class | Bin 661 -> 0 bytes .../realtors/rets/client/LogoutResponse.class | Bin 1758 -> 0 bytes .../rets/client/MetaCollectorAdapter.class | Bin 2864 -> 0 bytes .../rets/client/MetaCollectorImpl.class | Bin 882 -> 0 bytes .../rets/client/NetworkEventMonitor.class | Bin 252 -> 0 bytes ...onMultipartGetObjectResponseIterator.class | Bin 1431 -> 0 bytes .../rets/client/NullNetworkEventMonitor.class | Bin 679 -> 0 bytes .../org/realtors/rets/client/ReplyCode.class | Bin 5621 -> 0 bytes .../rets/client/ReplyCodeHandler.class | Bin 250 -> 0 bytes .../realtors/rets/client/RetsException.class | Bin 781 -> 0 bytes .../realtors/rets/client/RetsHttpClient.class | Bin 746 -> 0 bytes .../rets/client/RetsHttpRequest.class | Bin 3477 -> 0 bytes .../rets/client/RetsHttpResponse.class | Bin 535 -> 0 bytes .../realtors/rets/client/RetsSession$1.class | Bin 833 -> 0 bytes .../realtors/rets/client/RetsSession.class | Bin 9604 -> 0 bytes .../rets/client/RetsTransport$1.class | Bin 1009 -> 0 bytes .../realtors/rets/client/RetsTransport.class | Bin 10593 -> 0 bytes .../org/realtors/rets/client/RetsUtil.class | Bin 1449 -> 0 bytes .../realtors/rets/client/RetsVersion.class | Bin 3074 -> 0 bytes .../realtors/rets/client/SearchRequest.class | Bin 3804 -> 0 bytes .../realtors/rets/client/SearchResult.class | Bin 443 -> 0 bytes .../rets/client/SearchResultCollector.class | Bin 311 -> 0 bytes .../rets/client/SearchResultHandler.class | Bin 9858 -> 0 bytes .../rets/client/SearchResultImpl.class | Bin 2785 -> 0 bytes .../rets/client/SearchResultInfo.class | Bin 391 -> 0 bytes .../rets/client/SearchResultProcessor.class | Bin 380 -> 0 bytes .../rets/client/SearchResultSet.class | Bin 325 -> 0 bytes .../rets/client/SingleObjectResponse.class | Bin 1550 -> 0 bytes .../rets/client/SinglePartInputStream.class | Bin 1725 -> 0 bytes .../rets/client/StreamingSearchResult.class | Bin 5468 -> 0 bytes .../StreamingSearchResultProcessor.class | Bin 2773 -> 0 bytes .../rets/client/StreamingThread.class | Bin 1849 -> 0 bytes .../client/VersionInsensitiveRequest.class | Bin 553 -> 0 bytes .../rets/common/metadata/AttrType.class | Bin 585 -> 0 bytes .../rets/common/metadata/CacheKey.class | Bin 1388 -> 0 bytes .../common/metadata/JDomCompactBuilder.class | Bin 25641 -> 0 bytes .../common/metadata/JDomStandardBuilder.class | Bin 19819 -> 0 bytes .../rets/common/metadata/MetaCollector.class | Bin 430 -> 0 bytes .../rets/common/metadata/MetaObject.class | Bin 10886 -> 0 bytes .../common/metadata/MetaParseException.class | Bin 810 -> 0 bytes .../rets/common/metadata/Metadata.class | Bin 7057 -> 0 bytes .../common/metadata/MetadataBuilder.class | Bin 8258 -> 0 bytes .../common/metadata/MetadataElement.class | Bin 2636 -> 0 bytes .../common/metadata/MetadataException.class | Bin 807 -> 0 bytes .../rets/common/metadata/MetadataType.class | Bin 2071 -> 0 bytes .../metadata/attrib/AttrAbstractText.class | Bin 1905 -> 0 bytes .../common/metadata/attrib/AttrAlphanum.class | Bin 1257 -> 0 bytes .../common/metadata/attrib/AttrBoolean.class | Bin 1991 -> 0 bytes .../common/metadata/attrib/AttrDate.class | Bin 1259 -> 0 bytes .../common/metadata/attrib/AttrEnum.class | Bin 1357 -> 0 bytes .../metadata/attrib/AttrGenericText.class | Bin 1246 -> 0 bytes .../common/metadata/attrib/AttrNumeric.class | Bin 1595 -> 0 bytes .../metadata/attrib/AttrNumericPositive.class | Bin 1855 -> 0 bytes .../metadata/attrib/AttrPlaintext.class | Bin 1114 -> 0 bytes .../common/metadata/attrib/AttrText.class | Bin 1127 -> 0 bytes .../common/metadata/attrib/AttrVersion.class | Bin 2895 -> 0 bytes .../rets/common/metadata/types/MClass.class | Bin 4638 -> 0 bytes .../common/metadata/types/MEditMask.class | Bin 1663 -> 0 bytes .../common/metadata/types/MForeignKey.class | Bin 2635 -> 0 bytes .../rets/common/metadata/types/MLookup.class | Bin 3317 -> 0 bytes .../common/metadata/types/MLookupType.class | Bin 1826 -> 0 bytes .../rets/common/metadata/types/MObject.class | Bin 2442 -> 0 bytes .../common/metadata/types/MResource.class | Bin 10215 -> 0 bytes .../common/metadata/types/MSearchHelp.class | Bin 1676 -> 0 bytes .../rets/common/metadata/types/MSystem.class | Bin 3683 -> 0 bytes .../rets/common/metadata/types/MTable.class | Bin 7117 -> 0 bytes .../rets/common/metadata/types/MUpdate.class | Bin 3449 -> 0 bytes .../common/metadata/types/MUpdateHelp.class | Bin 1676 -> 0 bytes .../common/metadata/types/MUpdateType.class | Bin 3183 -> 0 bytes .../types/MValidationExpression.class | Bin 2300 -> 0 bytes .../metadata/types/MValidationExternal.class | Bin 3005 -> 0 bytes .../types/MValidationExternalType.class | Bin 1882 -> 0 bytes .../metadata/types/MValidationLookup.class | Bin 2981 -> 0 bytes .../types/MValidationLookupType.class | Bin 1841 -> 0 bytes .../util/CaseInsensitiveComparator.class | Bin 968 -> 0 bytes .../common/util/CaseInsensitiveTreeMap.class | Bin 906 -> 0 bytes .../client/BrokerCodeRequredException.java | 30 - .../realtors/rets/client/CapabilityUrls.java | 152 ---- .../rets/client/ChangePasswordRequest.java | 40 - .../rets/client/ChangePasswordResponse.java | 35 - .../CollectionOfCollectionsIterator.java | 40 - .../rets/client/CommonsHttpClient.java | 180 ----- .../client/CommonsHttpClientResponse.java | 110 --- .../rets/client/CompactRowPolicy.java | 56 -- .../rets/client/GenericHttpRequest.java | 36 - .../rets/client/GetMetadataRequest.java | 73 -- .../rets/client/GetMetadataResponse.java | 83 -- .../rets/client/GetObjectIterator.java | 12 - .../rets/client/GetObjectRequest.java | 101 --- .../rets/client/GetObjectResponse.java | 190 ----- .../client/GetObjectResponseIterator.java | 140 ---- .../rets/client/InvalidArgumentException.java | 7 - .../client/InvalidHttpStatusException.java | 12 - .../client/InvalidReplyCodeException.java | 44 -- .../rets/client/InvalidReplyCodeHandler.java | 17 - .../rets/client/KeyValueResponse.java | 112 --- .../realtors/rets/client/LoginRequest.java | 23 - .../realtors/rets/client/LoginResponse.java | 197 ----- .../realtors/rets/client/LogoutRequest.java | 9 - .../realtors/rets/client/LogoutResponse.java | 41 - .../rets/client/MetaCollectorAdapter.java | 61 -- .../rets/client/MetaCollectorImpl.java | 22 - .../rets/client/NetworkEventMonitor.java | 23 - .../rets/client/NullNetworkEventMonitor.java | 13 - .../org/realtors/rets/client/ReplyCode.java | 100 --- .../rets/client/ReplyCodeHandler.java | 23 - .../realtors/rets/client/RetsException.java | 21 - .../realtors/rets/client/RetsHttpClient.java | 27 - .../realtors/rets/client/RetsHttpRequest.java | 81 -- .../rets/client/RetsHttpResponse.java | 27 - .../org/realtors/rets/client/RetsSession.java | 403 ---------- .../realtors/rets/client/RetsTransport.java | 330 -------- .../org/realtors/rets/client/RetsUtil.java | 45 -- .../org/realtors/rets/client/RetsVersion.java | 96 --- .../realtors/rets/client/SearchRequest.java | 122 --- .../realtors/rets/client/SearchResult.java | 23 - .../rets/client/SearchResultCollector.java | 18 - .../rets/client/SearchResultHandler.java | 280 ------- .../rets/client/SearchResultImpl.java | 87 --- .../rets/client/SearchResultInfo.java | 25 - .../rets/client/SearchResultProcessor.java | 13 - .../realtors/rets/client/SearchResultSet.java | 15 - .../rets/client/SingleObjectResponse.java | 53 -- .../rets/client/SinglePartInputStream.java | 64 -- .../StreamingSearchResultProcessor.java | 325 -------- .../client/VersionInsensitiveRequest.java | 15 - .../realtors/rets/client/metadata_tables.xml | 41 - .../rets/common/metadata/AttrType.java | 16 - .../common/metadata/JDomCompactBuilder.java | 706 ------------------ .../common/metadata/JDomStandardBuilder.java | 628 ---------------- .../rets/common/metadata/MetaCollector.java | 20 - .../rets/common/metadata/MetaObject.java | 366 --------- .../common/metadata/MetaParseException.java | 26 - .../rets/common/metadata/Metadata.java | 154 ---- .../rets/common/metadata/MetadataBuilder.java | 203 ----- .../rets/common/metadata/MetadataElement.java | 31 - .../common/metadata/MetadataException.java | 28 - .../rets/common/metadata/MetadataType.java | 30 - .../metadata/attrib/AttrAbstractText.java | 49 -- .../common/metadata/attrib/AttrAlphanum.java | 31 - .../common/metadata/attrib/AttrBoolean.java | 54 -- .../rets/common/metadata/attrib/AttrDate.java | 71 -- .../rets/common/metadata/attrib/AttrEnum.java | 31 - .../metadata/attrib/AttrGenericText.java | 32 - .../common/metadata/attrib/AttrNumeric.java | 31 - .../metadata/attrib/AttrNumericPositive.java | 36 - .../common/metadata/attrib/AttrPlaintext.java | 28 - .../rets/common/metadata/attrib/AttrText.java | 28 - .../common/metadata/attrib/AttrVersion.java | 66 -- .../rets/common/metadata/types/MClass.java | 126 ---- .../rets/common/metadata/types/MEditMask.java | 50 -- .../common/metadata/types/MForeignKey.java | 87 --- .../rets/common/metadata/types/MLookup.java | 86 --- .../common/metadata/types/MLookupType.java | 56 -- .../rets/common/metadata/types/MObject.java | 79 -- .../rets/common/metadata/types/MResource.java | 270 ------- .../common/metadata/types/MSearchHelp.java | 50 -- .../rets/common/metadata/types/MSystem.java | 89 --- .../rets/common/metadata/types/MTable.java | 242 ------ .../rets/common/metadata/types/MUpdate.java | 91 --- .../common/metadata/types/MUpdateHelp.java | 50 -- .../common/metadata/types/MUpdateType.java | 103 --- .../metadata/types/MValidationExpression.java | 61 -- .../metadata/types/MValidationExternal.java | 76 -- .../types/MValidationExternalType.java | 57 -- .../metadata/types/MValidationLookup.java | 76 -- .../metadata/types/MValidationLookupType.java | 56 -- .../util/CaseInsensitiveComparator.java | 12 - .../common/util/CaseInsensitiveTreeMap.java | 16 - .../org/realtors/rets/client/AllTests.class | Bin 470 -> 0 bytes .../rets/client/GetMetadataRequestTest.class | Bin 2162 -> 0 bytes .../rets/client/GetMetadataResponseTest.class | Bin 717 -> 0 bytes .../GetObjectResponseIteratorTest.class | Bin 4844 -> 0 bytes .../realtors/rets/client/IOFailReader.class | Bin 1001 -> 0 bytes .../rets/client/LoginRequestTest.class | Bin 1171 -> 0 bytes .../rets/client/LoginResponseTest.class | Bin 1031 -> 0 bytes .../rets/client/LogoutResponseTest.class | Bin 1043 -> 0 bytes .../realtors/rets/client/RetsTestCase.class | Bin 1942 -> 0 bytes .../rets/client/RetsVersionTest.class | Bin 1783 -> 0 bytes .../rets/client/SearchResultHandlerTest.class | Bin 6193 -> 0 bytes .../rets/client/SearchResultImplTest.class | Bin 2163 -> 0 bytes .../client/SingleObjectResponseTest.class | Bin 1506 -> 0 bytes .../StreamingSearchResultProcessorTest.class | Bin 7379 -> 0 bytes .../client/TestInvalidReplyCodeHandler.class | Bin 844 -> 0 bytes .../rets/common/metadata/MetaObjectTest.class | Bin 1768 -> 0 bytes .../common/metadata/MetadataTestCase.class | Bin 349 -> 0 bytes .../rets/common/metadata/TestMetaObject.class | Bin 1609 -> 0 bytes .../attrib/AttrAbstractTextTest$1.class | Bin 990 -> 0 bytes .../attrib/AttrAbstractTextTest$2.class | Bin 990 -> 0 bytes .../attrib/AttrAbstractTextTest.class | Bin 1778 -> 0 bytes .../metadata/attrib/AttrAlphanumTest.class | Bin 1775 -> 0 bytes .../metadata/attrib/AttrBooleanTest.class | Bin 2503 -> 0 bytes .../common/metadata/attrib/AttrDateTest.class | Bin 500 -> 0 bytes .../common/metadata/attrib/AttrEnumTest.class | Bin 1289 -> 0 bytes .../metadata/attrib/AttrGenericTextTest.class | Bin 1135 -> 0 bytes .../metadata/attrib/AttrNumericTest.class | Bin 1436 -> 0 bytes .../metadata/attrib/AttrPlaintextTest.class | Bin 1504 -> 0 bytes .../common/metadata/attrib/AttrTextTest.class | Bin 1332 -> 0 bytes .../common/metadata/attrib/AttrTypeTest.class | Bin 1211 -> 0 bytes .../metadata/attrib/AttrVersionTest.class | Bin 1732 -> 0 bytes .../util/CaseInsensitiveTreeMapTest.class | Bin 1776 -> 0 bytes .../examples/RetsGetMetadataExample.class | Bin 3342 -> 0 bytes .../rets/examples/RetsGetObjectExample.class | Bin 4929 -> 0 bytes .../examples/RetsGetObjectURLExample.class | Bin 4077 -> 0 bytes .../rets/examples/RetsSearchExample.class | Bin 3379 -> 0 bytes 258 files changed, 78 insertions(+), 8568 deletions(-) delete mode 100644 target/classes/org/realtors/rets/client/BrokerCodeRequredException.class delete mode 100644 target/classes/org/realtors/rets/client/CapabilityUrls.class delete mode 100644 target/classes/org/realtors/rets/client/ChangePasswordRequest.class delete mode 100644 target/classes/org/realtors/rets/client/ChangePasswordResponse.class delete mode 100644 target/classes/org/realtors/rets/client/CollectionOfCollectionsIterator.class delete mode 100644 target/classes/org/realtors/rets/client/CommonsHttpClient.class delete mode 100644 target/classes/org/realtors/rets/client/CommonsHttpClientResponse$1.class delete mode 100644 target/classes/org/realtors/rets/client/CommonsHttpClientResponse.class delete mode 100644 target/classes/org/realtors/rets/client/CompactRowPolicy$1.class delete mode 100644 target/classes/org/realtors/rets/client/CompactRowPolicy$2.class delete mode 100644 target/classes/org/realtors/rets/client/CompactRowPolicy$3.class delete mode 100644 target/classes/org/realtors/rets/client/CompactRowPolicy$4.class delete mode 100644 target/classes/org/realtors/rets/client/CompactRowPolicy.class delete mode 100644 target/classes/org/realtors/rets/client/GenericHttpRequest.class delete mode 100644 target/classes/org/realtors/rets/client/GetMetadataRequest.class delete mode 100644 target/classes/org/realtors/rets/client/GetMetadataResponse.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectIterator.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectRequest.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectResponse$1.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectResponse.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectResponseIterator$1.class delete mode 100644 target/classes/org/realtors/rets/client/GetObjectResponseIterator.class delete mode 100644 target/classes/org/realtors/rets/client/InvalidArgumentException.class delete mode 100644 target/classes/org/realtors/rets/client/InvalidHttpStatusException.class delete mode 100644 target/classes/org/realtors/rets/client/InvalidReplyCodeException.class delete mode 100644 target/classes/org/realtors/rets/client/InvalidReplyCodeHandler$1.class delete mode 100644 target/classes/org/realtors/rets/client/InvalidReplyCodeHandler.class delete mode 100644 target/classes/org/realtors/rets/client/KeyValueResponse.class delete mode 100644 target/classes/org/realtors/rets/client/LoginRequest.class delete mode 100644 target/classes/org/realtors/rets/client/LoginResponse.class delete mode 100644 target/classes/org/realtors/rets/client/LogoutRequest.class delete mode 100644 target/classes/org/realtors/rets/client/LogoutResponse.class delete mode 100644 target/classes/org/realtors/rets/client/MetaCollectorAdapter.class delete mode 100644 target/classes/org/realtors/rets/client/MetaCollectorImpl.class delete mode 100644 target/classes/org/realtors/rets/client/NetworkEventMonitor.class delete mode 100644 target/classes/org/realtors/rets/client/NonMultipartGetObjectResponseIterator.class delete mode 100644 target/classes/org/realtors/rets/client/NullNetworkEventMonitor.class delete mode 100644 target/classes/org/realtors/rets/client/ReplyCode.class delete mode 100644 target/classes/org/realtors/rets/client/ReplyCodeHandler.class delete mode 100644 target/classes/org/realtors/rets/client/RetsException.class delete mode 100644 target/classes/org/realtors/rets/client/RetsHttpClient.class delete mode 100644 target/classes/org/realtors/rets/client/RetsHttpRequest.class delete mode 100644 target/classes/org/realtors/rets/client/RetsHttpResponse.class delete mode 100644 target/classes/org/realtors/rets/client/RetsSession$1.class delete mode 100644 target/classes/org/realtors/rets/client/RetsSession.class delete mode 100644 target/classes/org/realtors/rets/client/RetsTransport$1.class delete mode 100644 target/classes/org/realtors/rets/client/RetsTransport.class delete mode 100644 target/classes/org/realtors/rets/client/RetsUtil.class delete mode 100644 target/classes/org/realtors/rets/client/RetsVersion.class delete mode 100644 target/classes/org/realtors/rets/client/SearchRequest.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResult.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultCollector.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultHandler.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultImpl.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultInfo.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultProcessor.class delete mode 100644 target/classes/org/realtors/rets/client/SearchResultSet.class delete mode 100644 target/classes/org/realtors/rets/client/SingleObjectResponse.class delete mode 100644 target/classes/org/realtors/rets/client/SinglePartInputStream.class delete mode 100644 target/classes/org/realtors/rets/client/StreamingSearchResult.class delete mode 100644 target/classes/org/realtors/rets/client/StreamingSearchResultProcessor.class delete mode 100644 target/classes/org/realtors/rets/client/StreamingThread.class delete mode 100644 target/classes/org/realtors/rets/client/VersionInsensitiveRequest.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/AttrType.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/CacheKey.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/JDomCompactBuilder.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/JDomStandardBuilder.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetaCollector.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetaObject.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetaParseException.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/Metadata.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetadataBuilder.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetadataElement.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetadataException.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/MetadataType.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrAbstractText.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrAlphanum.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrBoolean.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrDate.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrEnum.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrGenericText.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrNumeric.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrNumericPositive.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrPlaintext.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrText.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/attrib/AttrVersion.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MClass.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MEditMask.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MForeignKey.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MLookup.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MLookupType.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MObject.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MResource.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MSearchHelp.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MSystem.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MTable.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MUpdate.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MUpdateHelp.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MUpdateType.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MValidationExpression.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MValidationExternal.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MValidationExternalType.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MValidationLookup.class delete mode 100644 target/classes/org/realtors/rets/common/metadata/types/MValidationLookupType.class delete mode 100644 target/classes/org/realtors/rets/common/util/CaseInsensitiveComparator.class delete mode 100644 target/classes/org/realtors/rets/common/util/CaseInsensitiveTreeMap.class delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/BrokerCodeRequredException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/CapabilityUrls.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/ChangePasswordRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/ChangePasswordResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/CollectionOfCollectionsIterator.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClient.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClientResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/CompactRowPolicy.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GenericHttpRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetMetadataRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetMetadataResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetObjectIterator.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetObjectRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetObjectResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/GetObjectResponseIterator.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/InvalidArgumentException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/InvalidHttpStatusException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeHandler.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/KeyValueResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/LoginRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/LoginResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/LogoutRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/LogoutResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/MetaCollectorAdapter.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/MetaCollectorImpl.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/NetworkEventMonitor.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/NullNetworkEventMonitor.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/ReplyCode.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/ReplyCodeHandler.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsHttpClient.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsHttpRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsHttpResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsSession.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsTransport.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsUtil.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/RetsVersion.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResult.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultCollector.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultHandler.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultImpl.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultInfo.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultProcessor.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SearchResultSet.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SingleObjectResponse.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/SinglePartInputStream.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/StreamingSearchResultProcessor.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/VersionInsensitiveRequest.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/client/metadata_tables.xml delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/AttrType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/JDomCompactBuilder.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/JDomStandardBuilder.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetaCollector.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetaObject.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetaParseException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/Metadata.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataBuilder.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataElement.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataException.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAbstractText.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAlphanum.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrBoolean.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrDate.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrEnum.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrGenericText.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumeric.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumericPositive.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrPlaintext.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrText.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrVersion.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MClass.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MEditMask.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MForeignKey.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookup.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookupType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MObject.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MResource.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSearchHelp.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSystem.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MTable.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdate.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateHelp.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExpression.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternal.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternalType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookup.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookupType.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveComparator.java delete mode 100644 target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveTreeMap.java delete mode 100644 target/test-classes/org/realtors/rets/client/AllTests.class delete mode 100644 target/test-classes/org/realtors/rets/client/GetMetadataRequestTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/GetMetadataResponseTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/GetObjectResponseIteratorTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/IOFailReader.class delete mode 100644 target/test-classes/org/realtors/rets/client/LoginRequestTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/LoginResponseTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/LogoutResponseTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/RetsTestCase.class delete mode 100644 target/test-classes/org/realtors/rets/client/RetsVersionTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/SearchResultHandlerTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/SearchResultImplTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/SingleObjectResponseTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/StreamingSearchResultProcessorTest.class delete mode 100644 target/test-classes/org/realtors/rets/client/TestInvalidReplyCodeHandler.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/MetaObjectTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/MetadataTestCase.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/TestMetaObject.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAbstractTextTest$1.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAbstractTextTest$2.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAbstractTextTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAlphanumTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrBooleanTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrDateTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrEnumTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrGenericTextTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrNumericTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrPlaintextTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrTextTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrTypeTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/metadata/attrib/AttrVersionTest.class delete mode 100644 target/test-classes/org/realtors/rets/common/util/CaseInsensitiveTreeMapTest.class delete mode 100644 target/test-classes/org/realtors/rets/examples/RetsGetMetadataExample.class delete mode 100644 target/test-classes/org/realtors/rets/examples/RetsGetObjectExample.class delete mode 100644 target/test-classes/org/realtors/rets/examples/RetsGetObjectURLExample.class delete mode 100644 target/test-classes/org/realtors/rets/examples/RetsSearchExample.class diff --git a/build.gradle b/build.gradle index 51add21..e2ed85f 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,8 @@ dependencies { compile group: 'log4j', name: 'log4j', version: '1.2.9' compile group: 'commons-logging', name: 'commons-logging', version: '1.1.1' - compile group: 'commons-lang', name: 'commons-lang', version: '2.4' + compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' + compile group: 'commons-codec', name: 'commons-codec', version: '1.3' compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.1.1' diff --git a/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClient.java b/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClient.java index 9c8f05d..1d7d976 100644 --- a/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClient.java +++ b/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClient.java @@ -6,7 +6,7 @@ import java.util.concurrent.ConcurrentHashMap; import com.ossez.reoc.rets.common.util.CaseInsensitiveTreeMap; import org.apache.commons.codec.digest.DigestUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; diff --git a/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClientResponse.java b/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClientResponse.java index 5fe9340..b5612fb 100644 --- a/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClientResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/CommonsHttpClientResponse.java @@ -6,8 +6,8 @@ import java.util.Map; import java.util.zip.GZIPInputStream; import com.ossez.reoc.rets.common.util.CaseInsensitiveTreeMap; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.Header; import org.apache.http.HttpResponse; diff --git a/src/main/java/com/ossez/reoc/rets/client/GetMetadataRequest.java b/src/main/java/com/ossez/reoc/rets/client/GetMetadataRequest.java index fd7ff18..12d7334 100644 --- a/src/main/java/com/ossez/reoc/rets/client/GetMetadataRequest.java +++ b/src/main/java/com/ossez/reoc/rets/client/GetMetadataRequest.java @@ -1,6 +1,6 @@ package com.ossez.reoc.rets.client; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; public class GetMetadataRequest extends VersionInsensitiveRequest { private static final int COMPACT_FORMAT = 0; diff --git a/src/main/java/com/ossez/reoc/rets/client/GetMetadataResponse.java b/src/main/java/com/ossez/reoc/rets/client/GetMetadataResponse.java index aa5fe08..67de0ec 100644 --- a/src/main/java/com/ossez/reoc/rets/client/GetMetadataResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/GetMetadataResponse.java @@ -8,7 +8,7 @@ import com.ossez.reoc.rets.common.metadata.JDomCompactBuilder; import com.ossez.reoc.rets.common.metadata.JDomStandardBuilder; import com.ossez.reoc.rets.common.metadata.MetaObject; import com.ossez.reoc.rets.common.metadata.MetadataException; -import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.jdom.Element; import org.jdom.JDOMException; diff --git a/src/main/java/com/ossez/reoc/rets/client/GetObjectRequest.java b/src/main/java/com/ossez/reoc/rets/client/GetObjectRequest.java index 0c65087..dc53e43 100644 --- a/src/main/java/com/ossez/reoc/rets/client/GetObjectRequest.java +++ b/src/main/java/com/ossez/reoc/rets/client/GetObjectRequest.java @@ -6,8 +6,8 @@ import java.util.Iterator; import java.util.Set; import java.util.Map; -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; public class GetObjectRequest extends VersionInsensitiveRequest { public static final String KEY_RESOURCE = "Resource"; diff --git a/src/main/java/com/ossez/reoc/rets/client/GetObjectResponse.java b/src/main/java/com/ossez/reoc/rets/client/GetObjectResponse.java index d675558..c534ec2 100644 --- a/src/main/java/com/ossez/reoc/rets/client/GetObjectResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/GetObjectResponse.java @@ -6,7 +6,7 @@ import java.util.Map; import java.util.NoSuchElementException; import com.ossez.reoc.rets.common.util.CaseInsensitiveTreeMap; -import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.http.HeaderElement; import org.apache.http.NameValuePair; import org.apache.http.message.BasicHeaderValueParser; diff --git a/src/main/java/com/ossez/reoc/rets/client/GetObjectResponseIterator.java b/src/main/java/com/ossez/reoc/rets/client/GetObjectResponseIterator.java index 000183a..7904302 100644 --- a/src/main/java/com/ossez/reoc/rets/client/GetObjectResponseIterator.java +++ b/src/main/java/com/ossez/reoc/rets/client/GetObjectResponseIterator.java @@ -7,7 +7,7 @@ import java.util.HashMap; import java.util.Map; import java.util.NoSuchElementException; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; public class GetObjectResponseIterator implements GetObjectIterator { public static final char CR = '\r'; diff --git a/src/main/java/com/ossez/reoc/rets/client/InvalidReplyCodeException.java b/src/main/java/com/ossez/reoc/rets/client/InvalidReplyCodeException.java index a125dda..94dbc93 100644 --- a/src/main/java/com/ossez/reoc/rets/client/InvalidReplyCodeException.java +++ b/src/main/java/com/ossez/reoc/rets/client/InvalidReplyCodeException.java @@ -1,6 +1,6 @@ package com.ossez.reoc.rets.client; -import org.apache.commons.lang.SystemUtils; +import org.apache.commons.lang3.SystemUtils; /** * Exception class for invalid reply codes from a Rets server */ diff --git a/src/main/java/com/ossez/reoc/rets/client/KeyValueResponse.java b/src/main/java/com/ossez/reoc/rets/client/KeyValueResponse.java index d19b17c..8020c8c 100644 --- a/src/main/java/com/ossez/reoc/rets/client/KeyValueResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/KeyValueResponse.java @@ -10,8 +10,8 @@ import org.jdom.JDOMException; import org.jdom.Document; import org.jdom.input.SAXBuilder; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java b/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java index d75ecfe..dcb131d 100644 --- a/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java +++ b/src/main/java/com/ossez/reoc/rets/client/LoginResponse.java @@ -6,8 +6,8 @@ import java.net.URL; import java.util.HashSet; import java.util.Set; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/src/main/java/com/ossez/reoc/rets/client/MetaCollectorAdapter.java b/src/main/java/com/ossez/reoc/rets/client/MetaCollectorAdapter.java index 164c1d7..ebb3f49 100644 --- a/src/main/java/com/ossez/reoc/rets/client/MetaCollectorAdapter.java +++ b/src/main/java/com/ossez/reoc/rets/client/MetaCollectorAdapter.java @@ -3,7 +3,7 @@ package com.ossez.reoc.rets.client; import com.ossez.reoc.rets.common.metadata.MetaCollector; import com.ossez.reoc.rets.common.metadata.MetaObject; import com.ossez.reoc.rets.common.metadata.MetadataType; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/src/main/java/com/ossez/reoc/rets/client/RetsException.java b/src/main/java/com/ossez/reoc/rets/client/RetsException.java index 70f6be4..4ec8274 100644 --- a/src/main/java/com/ossez/reoc/rets/client/RetsException.java +++ b/src/main/java/com/ossez/reoc/rets/client/RetsException.java @@ -1,8 +1,9 @@ package com.ossez.reoc.rets.client; -import org.apache.commons.lang.exception.NestableException; - -public class RetsException extends NestableException { +/** + * @author YuCheng Hu + */ +public class RetsException extends Exception { public RetsException() { super(); } diff --git a/src/main/java/com/ossez/reoc/rets/client/RetsHttpRequest.java b/src/main/java/com/ossez/reoc/rets/client/RetsHttpRequest.java index ad64f8b..9c0f759 100644 --- a/src/main/java/com/ossez/reoc/rets/client/RetsHttpRequest.java +++ b/src/main/java/com/ossez/reoc/rets/client/RetsHttpRequest.java @@ -9,8 +9,8 @@ import java.util.SortedMap; import java.util.TreeMap; import com.ossez.reoc.rets.common.util.CaseInsensitiveTreeMap; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; /** Base Http Request object */ public abstract class RetsHttpRequest implements Serializable { diff --git a/src/main/java/com/ossez/reoc/rets/client/RetsUtil.java b/src/main/java/com/ossez/reoc/rets/client/RetsUtil.java index 048e5d0..f3b625e 100644 --- a/src/main/java/com/ossez/reoc/rets/client/RetsUtil.java +++ b/src/main/java/com/ossez/reoc/rets/client/RetsUtil.java @@ -1,45 +1,48 @@ package com.ossez.reoc.rets.client; +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.EncoderException; +import org.apache.commons.codec.net.URLCodec; + import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import org.apache.commons.codec.DecoderException; -import org.apache.commons.codec.EncoderException; -import org.apache.commons.codec.net.URLCodec; -import org.apache.commons.lang.exception.NestableRuntimeException; - -/** Random utility functions. */ +/** + * Random utility functions + * + * @author YuCheng Hu + */ public class RetsUtil { - public static void copyStream(InputStream in, OutputStream out) throws IOException { - byte[] buf = new byte[512]; - int count; - while (true) { - count = in.read(buf); - if (count < 1) { - in.close(); - out.close(); - return; - } - while (count > 0) { - out.write(buf); - } - } - } + public static void copyStream(InputStream in, OutputStream out) throws IOException { + byte[] buf = new byte[512]; + int count; + while (true) { + count = in.read(buf); + if (count < 1) { + in.close(); + out.close(); + return; + } + while (count > 0) { + out.write(buf); + } + } + } - public static String urlEncode(String string) { - try { - return new URLCodec().encode(string); - } catch (EncoderException e) { - throw new NestableRuntimeException(e); - } - } + public static String urlEncode(String string) { + try { + return new URLCodec().encode(string); + } catch (EncoderException e) { + throw new RuntimeException(e); + } + } - public static String urlDecode(String string) { - try { - return new URLCodec().decode(string); - } catch (DecoderException e) { - throw new NestableRuntimeException(e); - } - } + public static String urlDecode(String string) { + try { + return new URLCodec().decode(string); + } catch (DecoderException e) { + throw new RuntimeException(e); + } + } } diff --git a/src/main/java/com/ossez/reoc/rets/client/RetsVersion.java b/src/main/java/com/ossez/reoc/rets/client/RetsVersion.java index 646710a..243e69f 100644 --- a/src/main/java/com/ossez/reoc/rets/client/RetsVersion.java +++ b/src/main/java/com/ossez/reoc/rets/client/RetsVersion.java @@ -2,8 +2,8 @@ package com.ossez.reoc.rets.client; import java.io.Serializable; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; public class RetsVersion implements Serializable { public static final String RETS_VERSION_HEADER = "RETS-Version"; diff --git a/src/main/java/com/ossez/reoc/rets/client/StreamingSearchResultProcessor.java b/src/main/java/com/ossez/reoc/rets/client/StreamingSearchResultProcessor.java index 2475bf6..f6ee4d5 100644 --- a/src/main/java/com/ossez/reoc/rets/client/StreamingSearchResultProcessor.java +++ b/src/main/java/com/ossez/reoc/rets/client/StreamingSearchResultProcessor.java @@ -4,7 +4,6 @@ import java.io.InputStream; import java.io.Reader; import java.util.LinkedList; -import org.apache.commons.lang.exception.NestableRuntimeException; import org.apache.commons.logging.LogFactory; import org.xml.sax.InputSource; @@ -163,7 +162,7 @@ class StreamingSearchResult implements SearchResultSet, SearchResultCollector { if (state() > BUFFER_FULL) { if (this.exception == null) setException(new RetsException("Attempting to add rows to buffer when in complete state")); - throw new NestableRuntimeException(this.exception); + throw new RuntimeException(this.exception); } // check complete. @@ -174,7 +173,7 @@ class StreamingSearchResult implements SearchResultSet, SearchResultCollector { if (this.exception == null) setException(new RetsException("Timeout writing to streaming result set buffer, timeout length = " + this.timeout)); - throw new NestableRuntimeException(this.exception); + throw new RuntimeException(this.exception); } } @@ -283,7 +282,7 @@ class StreamingSearchResult implements SearchResultSet, SearchResultCollector { try { return checkException(); } catch (RetsException e) { - throw new NestableRuntimeException(e); + throw new RuntimeException(e); } } @@ -301,7 +300,7 @@ class StreamingSearchResult implements SearchResultSet, SearchResultCollector { wait(this.timeout); } catch (InterruptedException e) { pushState(COMPLETE); - throw new NestableRuntimeException(e); + throw new RuntimeException(e); } } diff --git a/src/main/java/com/ossez/reoc/rets/common/metadata/MetaObject.java b/src/main/java/com/ossez/reoc/rets/common/metadata/MetaObject.java index 05b1870..c04216f 100644 --- a/src/main/java/com/ossez/reoc/rets/common/metadata/MetaObject.java +++ b/src/main/java/com/ossez/reoc/rets/common/metadata/MetaObject.java @@ -10,9 +10,9 @@ import java.util.Map; import java.util.Set; import com.ossez.reoc.rets.common.util.CaseInsensitiveTreeMap; -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.ossez.reoc.rets.common.metadata.attrib.AttrAlphanum; diff --git a/src/main/java/com/ossez/reoc/rets/common/metadata/MetadataException.java b/src/main/java/com/ossez/reoc/rets/common/metadata/MetadataException.java index a3da28c..9171b00 100644 --- a/src/main/java/com/ossez/reoc/rets/common/metadata/MetadataException.java +++ b/src/main/java/com/ossez/reoc/rets/common/metadata/MetadataException.java @@ -7,9 +7,8 @@ */ package com.ossez.reoc.rets.common.metadata; -import org.apache.commons.lang.exception.NestableException; -public class MetadataException extends NestableException { +public class MetadataException extends Exception { public MetadataException() { super(); } diff --git a/src/main/java/com/ossez/reoc/rets/common/metadata/attrib/AttrVersion.java b/src/main/java/com/ossez/reoc/rets/common/metadata/attrib/AttrVersion.java index df4529c..d3c49dc 100644 --- a/src/main/java/com/ossez/reoc/rets/common/metadata/attrib/AttrVersion.java +++ b/src/main/java/com/ossez/reoc/rets/common/metadata/attrib/AttrVersion.java @@ -7,7 +7,7 @@ */ package com.ossez.reoc.rets.common.metadata.attrib; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import com.ossez.reoc.rets.common.metadata.AttrType; import com.ossez.reoc.rets.common.metadata.MetaParseException; diff --git a/src/test/java/com/ossez/reoc/rets/examples/RetsGetMetadataExample.java b/src/test/java/com/ossez/reoc/rets/examples/RetsGetMetadataExample.java index ea14bd8..20b32f9 100644 --- a/src/test/java/com/ossez/reoc/rets/examples/RetsGetMetadataExample.java +++ b/src/test/java/com/ossez/reoc/rets/examples/RetsGetMetadataExample.java @@ -2,11 +2,7 @@ package com.ossez.reoc.rets.examples; import java.net.MalformedURLException; -import com.ossez.reoc.rets.client.CommonsHttpClient; -import com.ossez.reoc.rets.client.RetsException; -import com.ossez.reoc.rets.client.RetsHttpClient; -import com.ossez.reoc.rets.client.RetsSession; -import com.ossez.reoc.rets.client.RetsVersion; +import com.ossez.reoc.rets.client.*; import com.ossez.reoc.rets.common.metadata.types.MClass; import com.ossez.reoc.rets.common.metadata.types.MResource; import com.ossez.reoc.rets.common.metadata.types.MSystem; @@ -34,7 +30,9 @@ public class RetsGetMetadataExample { session.setMethod("POST"); try { //Login - session.login(username, password); + LoginResponse loginResponse = session.login(username, password); + + System.out.println(">>>" + loginResponse.getSessionId()); } catch (RetsException e) { e.printStackTrace(); } diff --git a/src/test/java/com/ossez/reoc/rets/examples/RetsSearchExample.java b/src/test/java/com/ossez/reoc/rets/examples/RetsSearchExample.java index 7e7824c..5366984 100644 --- a/src/test/java/com/ossez/reoc/rets/examples/RetsSearchExample.java +++ b/src/test/java/com/ossez/reoc/rets/examples/RetsSearchExample.java @@ -2,7 +2,7 @@ package com.ossez.reoc.rets.examples; import java.net.MalformedURLException; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import com.ossez.reoc.rets.client.CommonsHttpClient; import com.ossez.reoc.rets.client.RetsException; import com.ossez.reoc.rets.client.RetsHttpClient; diff --git a/target/classes/build.xml b/target/classes/build.xml index 485ce42..6acd5e5 100644 --- a/target/classes/build.xml +++ b/target/classes/build.xml @@ -17,7 +17,7 @@ - + diff --git a/target/classes/org/realtors/rets/client/BrokerCodeRequredException.class b/target/classes/org/realtors/rets/client/BrokerCodeRequredException.class deleted file mode 100644 index 8a09b869d71379ee3c4ddddffe736d4fd611f009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmbVKQA-;^5dJpF<;;1l(P&I+tu=)bBX~&h$x>*gJ{=-y3HW$kwsG6bt#0;2|CNG8 zQSb-!N0rWQLKCQYDF?&M?94aweRIEl-#-G_#v2bVmR;05`L-D;xh5o=$Z%#b!$t2;i7Bb!4=r9xv1jAe?Qht#2 zkGc999Ve7o2xS~4ok$52kCFv_A_fdQp;Wy<@hH(!4am`hAWj5Nb?`~aA6yyGHb2W0 z?|#0B`KcYp;KY=t{_4~FFwFM29&=h~ZcG%8Sb1M$reeM?%#v%<$88xse0W%6sEoDw zs8n=mpv=>(i`PEZ(eN>Y62rUypvCZZYFC?t`OBXn-!zIZjh7kUf>yX zsEx_PS^obBLfaSVF9GOch6H&z@`)Q+pQ1w)C<83EZoyg)$Q^CoB7cX%PdL}M`We~h z$dj#7?J_E;QEVdHhdGofA_UCS3`Spt{2_W^W58+Mz`3HL91L8M(!h#^@vZNSV2Ho1 Gs{R3#p0zvx diff --git a/target/classes/org/realtors/rets/client/CapabilityUrls.class b/target/classes/org/realtors/rets/client/CapabilityUrls.class deleted file mode 100644 index 4d63eb97f537f79f252576c8a5e19085171eb1e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4494 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 NUydcm|4xKE^A8*C@xTB8 diff --git a/target/classes/org/realtors/rets/client/CommonsHttpClient.class b/target/classes/org/realtors/rets/client/CommonsHttpClient.class deleted file mode 100644 index 684bf4e45757913e376276188a24537b2ec23eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9961 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 diff --git a/target/classes/org/realtors/rets/client/CompactRowPolicy$4.class b/target/classes/org/realtors/rets/client/CompactRowPolicy$4.class deleted file mode 100644 index c9dc7e9c478c68e7a0fd57ca9efd49f4c0545b5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1175 zcma)6TTc@~6#k~Sg=LkSpn~G6plxYcx%eOuUx*}4su(dO=+m&BE=#sE&FmE9?-(C> z@kunX4?g;%jAyqsGzJaX?4HYfGv_;(*`L3@bpb5nsf|4DSh#Cr4)=!OTDWiH0Up|z z$HE96;jx7xLt!(Np?S`bEtd8ea$Bk)7)I-%6t6n11EJsYgNQs6b>;JDkLxh8`_7y> z3}XhTCZ*6@5sza*X0@(#;Az1lqjXG)i9J6Gg*4ulYPGp<-l&t;DhmD6`Lzv(Ja4z7 zQ-*S}_P&0^kGU6d8F;%!hcei>#8rAnbhSERU^NEIS5c=WDe&YaSjzC2N1cS1y{kIf z7u#Wy&(z;kmXgSn`3vbsDyGOUg*j9W2R23+N>@(FLdiiHiwv8Trn?ZYyERD^!iFo; zg1V~dY7uuL-Yu#nlvI1ntGM?VyDS4U96P`PVFOT+d$gA2_Pa(rCZ!EJR2l($$a$cMC2|)_fZUU z|IeC6|AcEvgE1K6&w+bX?_s)73>msz$xBl~mP49Hl99}pzkq#Cm#@*ckUGn_PP)?r zU=-tI(PhFUeUr^U2$v(-tadBiPw*x(=g3av3g406&(5Bsu)CkDc2k+Jr1BirR}5v4 zJxjKHMD^-ha%U7NgM{4-#RUzMg(dn~cr-@KSjP$)SW6j~d#w75i63rYD$SyaY1~Xp c(8Mj$vh>_e&z-?6$y~ZNMw(6dVUobmZ$c0#pa1{> diff --git a/target/classes/org/realtors/rets/client/CompactRowPolicy.class b/target/classes/org/realtors/rets/client/CompactRowPolicy.class deleted file mode 100644 index 14a08358d70b55253d331a755b848b19f290abb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmb7C+e*Vg6r8QG+s1gS*Lt^BZ4?Y%-V{OVg+jEYt%CX>XN~t>Aeg$h%e;ijW~*sg?`*D#Nbrlm z^ecwM9=Ul=w9n9!(=W&(@81fBLDTWX*~5KJ1XZi%Qb(=$4}mR?9a)V1e%yvMq&WXh zlik#i!=#2G40om5(va#>vaMmHOUaIgQ7O^?9f)D*XXwS+ovl0Z)xJEh|vk?EwIa1#G2@7K_S-LM7#w~EYU== y1(jG|6WR-1W|*QgMW#TKHZnz#W-*5~`q(t}Vwk}oVTNv~gwm3KqtwWnb?^&Agtqtq diff --git a/target/classes/org/realtors/rets/client/GenericHttpRequest.class b/target/classes/org/realtors/rets/client/GenericHttpRequest.class deleted file mode 100644 index b2e211fd82349480779e5e46d3153c788d2bcd95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmb7?&2AGh6orqINrns|p+JB5FR&m@3L`+Qir7>tREiK#$leK7Fq(LZ?TOUKVu32L z-~o6j#PMX*RtlA1<9j?l_q*43{Ok9Rp8%dqn}1RQ-Jv$>O)(oQ`$3K~ez`KtCo&sJtHZwf82QiI2|OC+cA8oxGoM>W;axh( zv@$+@rHrzA^4j~u_v&k*oZk^x?G3-kxlA)@rs;vV+Dvys@p@siP-*FqZ93&YhSTld z`NekSp&aW>`y*OiiHwM3hg<)gB(TC#?+Rs)-byQH$}21I@Gl)Nw^ z9OQ+as68EKxV}7%$KkGRG!eIP7u`0lVO3!8AM+G=daiqMx?AX!q_u^+B85sFbjcF9jFpP{oLPZ+rlBT}fQ>TmJY?^{$TqU_0ygfH@nXpJSbtC3)=}S##-4AQ?X7}BXFba=lUN9#I~>i diff --git a/target/classes/org/realtors/rets/client/GetMetadataRequest.class b/target/classes/org/realtors/rets/client/GetMetadataRequest.class deleted file mode 100644 index f27e9006d2bc30826d1957e7d5544bcd657775d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2940 zcmb7GSyS6q6#gzYSh!*nOF~v9X%b^Y3^ZvL(xk?i)CrD>w?fjE3R@6STXH0sgzoE) zC@<|>U;5C_G|*|L^u0f-({pWE78qvQ2TS*yd+v9>vt9Y`fBx75Foo{|$OO@gY!DZa zc z@%@beJ`zw4ViXktI!7}ER0TW}U<$CfwH-i>p*NmREym)xmHBig70WTOBtuW!&@Efh z?SfLSsXii2GzPP|*u%M4W^QFEwcwcZEyf@`NGz}9mKPHY(!z$asYJ_)z8=lmrlzmY zFm&<#lnaWfaoJJ& z?WdZ>FtK2m>rqox%C=!zw6Lvcv8<`O9lfX8Db-d=imhbSXEoKbDHVQut4fd^T8Xle zcu`cVHu1Frc+LU`xcuNK;gv|B*5paqFy(OL$aBS#83N87AmR-~7^aV8 z>~um>w^ZHIY;99@29d5fZys(jTsjgYLnG~pwM(g1Rh_1H;*e==?>DCOb18Z8=?3f&ssYc_9d z9MQjFXmtJE+&6~~a{Dl}^ChB}k4(k>OM__A;Cbe!e(CHB$@v2CkviMnrUE_!#9udBF5`Zq~hL>Kr+uQwd={|UD28_({dE)oaf>86hnc!JzPe4T4!lKLKl!**_jA|rvr9VeCm-I0FFa1-D|9aJqDuj%T`g%wj=5PN?jI`*6i7+ri&W=%_ z$8oxzo)Z-CX(D}oPy$M<2yVt-C-hjYzN0% z6dD=32!SfjU5qpgT^HS$LxNyB_?=5n4!1zL;c)$ty>0Zo!sxPeViza>YN7Vlvo}Wn zd&20W4rw9xyU6`@%FM06C}GmQ>-gBFv)o4^vgiK+XStJR2~P16?Csz*)quN=_@<>Z z^+H7W@@#!6dr!#xgm1c0w*5>;$PcI|yD*9K)O$DRQp;1nwHOy%#)US<3`yK~lANTN z8DR~Er6K7YFSd`09cC|azLgk>Y7GJx2(*WqQlbiSS7PI+-6TZJ>lOl zvW?(Z)`QaPqCBJ)Y*2~Po1=6R U%K2XoP?+}|?sN|?)~z1>3p8kbumAu6 diff --git a/target/classes/org/realtors/rets/client/GetMetadataResponse.class b/target/classes/org/realtors/rets/client/GetMetadataResponse.class deleted file mode 100644 index 506e9e41b6e8a67053bfc9df31482014a7b99f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3522 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 W#F)gVn1)u|Alf-bD~KqgPW%sG51@nq diff --git a/target/classes/org/realtors/rets/client/GetObjectResponse$1.class b/target/classes/org/realtors/rets/client/GetObjectResponse$1.class deleted file mode 100644 index 62428f471dca9f48fa92206e4fe16607579845e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1086 zcmb7CT~8B16g|_gEo&7-J`@E(c>pA=^;JS*NHru_6KhEHZMsa_A=??UJ0<)mAM`~M zP4wL#WjtHjwYD_q!`wS}a?YJ|&&yKw;k=D}m`lZB)J6X{z|0Y(_kpJ+z^Wj%2LUx_?-3ZJh{I4vbOpek7Ab zvD`VdaVvY>RVi?(ka!ax5*fVbC*yKc>$sm%Z670gGdnRFTs`dYcRJ@)Xpf-3+Ce11;l4=a=5{mf`NHd7%P_m+{8313de26l)TNH;&Sz)5$CTbu8k9CUhrWT`ilP; k^#z4bBXX}Ys({5F>Mri}@)GVd7w~}b7MIV)MP{1t8?B|~_y7O^ diff --git a/target/classes/org/realtors/rets/client/GetObjectResponse.class b/target/classes/org/realtors/rets/client/GetObjectResponse.class deleted file mode 100644 index 60d5438c833eb22f5527416d92440d1a68a12d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5804 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 diff --git a/target/classes/org/realtors/rets/client/InvalidArgumentException.class b/target/classes/org/realtors/rets/client/InvalidArgumentException.class deleted file mode 100644 index 72218a03065b4548f7467abcb0367c6bdaa4581d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmb7AO-sW-5PcKVL}RtJpf?X*#1AkOkCj3Z1tEB_()%`D;>u=MHk;z#@+5fh2l%7J zNfa;AgR?L@@6F7c+5Px@dj~MYAi)}XG5Rrf2+@Ty%8v=VN7N1dMObwCX`J7?Z%vl4mlkNo+a`7LCQ1gz@k6BpU|dCik31gotJf&rhb9u zU0)>{eg~Iny+SHPnJhqa{Rh~`QKcVIwW^G9@f6nAJcvuHmAlg4 z0~1$CUn@dk5lf^fC|Q;Xq=DBbz%K+W)3@D!0lGD!ZqV)8Gw~Llqn6{nBJdf0cY-Gv OZeS&^{3fAGSp5UZxCc=H diff --git a/target/classes/org/realtors/rets/client/InvalidReplyCodeException.class b/target/classes/org/realtors/rets/client/InvalidReplyCodeException.class deleted file mode 100644 index 5c47d2286e38056b41579e1437712dd8bd2bfe61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1691 zcma)6*-{fh6g{0lCK-pY$R?=Bo`fZUxFCoEf<^;cY!Gh{3y%YlVMT?iN#BI-|pMzo<8@?{Q3Ly7l27*Wwc;Irqxso&A2OJS_JoG)ZxC^ zc_87Tj3_2zn872lniYeWFeefoi&P3HF)!hXgr^L$vCa$n$&$6t83wYJolo0b)m_VW zXyH2PoUU=xO$S-C40Xn;lV@njzE_Xcw62=@^oDC|W}eQXgmH5bZtr*^H|lj{eao>ha4}s znq?A=xPAVrZB;K)4VGaTPSgeqP-X?ySa6*b%5!&>JC2$snASwH+N(p(9z*A)lf~k} z0k?@xGhqZ3d`96!k~lRv;>56A9@J<{Tmte)g$<#4+`Dj8bc&VU6gs+fbn5yZmnoJpnYF=6=a|Rt}AT_CPeg8=hTpl~HEyHiZFj?~|rXXXx zR@vkX{i2FmP;-YoowE$XG9CXbIB{HVY`L0F&W&d?Ys>F8mftL_FKoVEr|&^66u7z1 zFjlR>mwLWf^h721j9xL{H(Qj<<~zavZ|b(mHm(Lryf#?TxA`4%^5?4l?` z=OLOKQm0_4?jHz!NBE1E-c4hifB=R5Aq_Ofag(C<@&(+&ZHnkBdT@u}1Z=MlyW+#j z9_&aJ%qGHYMvQ1yFy#PKMjw$EnEe>=F+UO)L3Q^GbvvnV2$xWQib$50(r@&PoFTe% zir81kC0rAmG?k!~(D0U`c(s&xC1s?9#?OQvf_Qfq$s}IdDBMi%nxdT~<}0UY3Mj50POyp9o|6=5sFc7!(qm5?p zDQSG>at1z6QlpjiNypwwqX%Eq$lMo`&ZHd}<#rA}2(0O+pFW=hsA#uS2&=iL9s$u2 zh)?cPHS#*MoY-1u?Rn|Piv)2m8@p7U>SB%Ue<*l&EpH|FKC!9Ea&3p_%3o!JIwDjB z-Y>n-TvgH8_@B=CQwTH)F^Q3On0)SEtJDj$msT+2K^q}Y&I9xQB^noDR%4XV3;Oc@ z1H^X*0b+hDlVXS!#`P(H{y8(g3mQZf&7VjX(ARz-__p9N_n*hOq`@_nA8tdB(?DaJryb%+{&?fZpQ<8CG;M1& diff --git a/target/classes/org/realtors/rets/client/KeyValueResponse.class b/target/classes/org/realtors/rets/client/KeyValueResponse.class deleted file mode 100644 index 7614fe7b7e0d20f4fd6c6d604d7f71d0fdf0c7af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4576 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 diff --git a/target/classes/org/realtors/rets/client/LoginRequest.class b/target/classes/org/realtors/rets/client/LoginRequest.class deleted file mode 100644 index 198e8038b40a9de38fceeb208217198de534c51c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcma)5TTc@~7(LTMx0D5>a#2JD6=_Rh74<0WG@_tQcrw#6DWl6S&Q3}A5B?9I zeJP11zMA->jAyrvsD*?yo$oT=?VNA+=dZ8d0o=!<99+!ia0|C{=))Zcb6MPt)p-Yn z9Gv*lK{1O`EEgP<1%@}*ci*jTZ*8t`SGJz73*@Ws<&pG!88p2eYjn_D6&R|7L1blM zYtnBify@&fX!}$kT`1NB`YPcby(3i}sF$sSx-xHM-KQsC4I9$0Nuy)C>+G}pIue+# zhNkHmC4C#3h>DH8hObp%y=vIh!M6I?Qjul%Or-2v;|r7v=jT-9p{#3P+hc}CtI1d` zY68UzClM%Ht(owHG95_sg;LcrGS!Phjpsgs}AKgf90!Ein22&emGm-&4lLG9CzsvWtiC1eVY3P*Wz-Vele| zR1j&ak5rd`F6!K*e>oQzY$}@|O|~^wDE3k%Fn$K5F@d9`{&h>4<5$wi17(%r=H=m` z3ibpR&r0g4-bKwPleJ;z@nV+m-{toqa1}!srW~P_LO;^fxdfhhdOS)&*zQN z=9x*HX^c^KI{_HS1TC_TD?H=mXDpba94IZck!mA-S|FEPILPuB7n$e;c8f5Db4{^~ zz%@*F%YEX^X~wQB{J>Bt-!Iz8e8y6_W3dIT8T!A$**!s)j)8oRN16XN26=zle~J)* p!Gwij;?EQRG*Lh1H1Rw$olbw|S;6&$C3eRRYAMcilW{4`{08B832p!Y diff --git a/target/classes/org/realtors/rets/client/LoginResponse.class b/target/classes/org/realtors/rets/client/LoginResponse.class deleted file mode 100644 index 6487a4e2cf300de05a152e6ae3710f67d9a65049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6601 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 AT>t<8 diff --git a/target/classes/org/realtors/rets/client/LogoutResponse.class b/target/classes/org/realtors/rets/client/LogoutResponse.class deleted file mode 100644 index 5dc25abe6c0be0d5a88250c68100ce33a4bc139f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1758 zcma)6?NZxD6g`WLC2WOIla`hysX`MlhTtY?(lk)o;@ZT)*qxZ61Aj6?UW{5<@{2-qR zj6aRRr%ONDvJ*KxS3^l4-I7t`6!WFr;_w-~oH-kVY)ml_xA>9}eT}Whl%yMeH?U>d zQ3Oo?AIgf-$G}y5B(R_qehc{2f(m-lj&_{3G*HH-fe$ewp!K^la9O#N4X5SR4-flI z8MuNO1DEiwz|8r%*yuWLQw9Q8DjunEnr5u98T3gvN!tU{z(Z81uX%Hw`$t$du!X9I zZ38vbso^UzoJw^nqQLwsb01Usm%0e(Z7Z^mcmO$iJDK-6kyfW8y{5p;5hcU2_VIJH z^vI8&3dOR*PzI55?dUrz@HqbhcXMxgi^D^s2Jgn}UvSy7Irqevil<57&S2+7m(8rk zZ{#(<0bJwXW17Dr4YNvW?q=~GW+3oB_hU%V|6ssR(Vrdgb>?uGdbymUp5@%org#Pi zm8(gwKr3j+^DiKN;bx3i$4P3P7Ixh(TL!PE)fIqPT+I&aEC z{g|_)K>`sBV5(38F$q0mc3zt84BV)a@>t!k^3Ygd45Y+=4vu>M#OWB z|IEN35m!eL!I2zUter2O8(F+EvUuWr@%)Hloz0%=cdZ8vn8=R(f$VQcE5^ith8n$3 IdT?(22SvYz(f|Me diff --git a/target/classes/org/realtors/rets/client/MetaCollectorAdapter.class b/target/classes/org/realtors/rets/client/MetaCollectorAdapter.class deleted file mode 100644 index d8fc890c4df130a907d81db09bcefc212cb7e87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2864 zcmb_eT~iZR7=8}fWRqo!7@-pU3R*QlAXrR2H9Wx&DxRt^1VZ`A34vtZaf=zFViXq4Ou;FYoU)g(onp}{7c+UM zm=lPMSY^u}rADgvfq*jR%$owo@>bcrw^Euj-5F!f=1n~B6b$=;;ac)syHxxI%M+j} zx^Ydz_8r&b#`iJ>+cL|3=C0`*V~%Z`1-`m5Z&ZBKrPtP?>C0F1hEK3wD#*Yt+)Sw^ zwQEU=&#YI>Tz=75H8QrrFs6N%(d2p`9n!|++#b|L2G5iHdNfQcz zj)usl%)*N6S*!G-@_O1Sarg885NxyKqlX`I&1Hdspy;cqo7hj$l)1cOdXltor5gK* zN6i=nTC912sB3x^78+w6Jf!uiJk1L#1@cpcG{wrgwN@}IzU7oD9`c^8ky} ztil701#zchO~*Q3yaBt~)|^EFrUE8OeI^MU-;e#Kxz>AGX%U8D z*v$MJ0=4-f1qKg?WpA=@u#^osB05sN%^n3V2jFOylT-YHbo}<%-yfFueM`a)dllPa zDz6{TZeYhZ7S6ioo2;dn;kw3p!KthZ^fj8UF>|{C^WN2Mi8|FNTpQ~FPNitOXZmB+ zt{->YlEEm_0b~aZvc1uCC3WlW(!mL3@GA_b~!vC&ItuWC&uDfK*hljE)*pqc}!jCwbe=yHlk1 z3}K(eFmp6Un(r_nv*hjx=`WDCB{H^5zC4Ea6D4JeDrn_1ghA#r%)2y(_yaUT8|U#M zcPcG()!r`g{whA=>hVYD$GAof5>wC4Mm;+lwd}~Z!}J=Wofr57*P$qi{4g+<5$Y;@ jc97mr>s8gm8~GQDckLkY8#-lWiH6D=;c1k2E%@v|Ar$%u diff --git a/target/classes/org/realtors/rets/client/MetaCollectorImpl.class b/target/classes/org/realtors/rets/client/MetaCollectorImpl.class deleted file mode 100644 index 1d36cf6ac85d94b15139ac9fcced2dd0e8797aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcma)4O;6iE5Pj>I7@IVKQbG&;f&(H++lVu5B@{JPrNAMLxb?8ut6=2V$$C@uXB7#k z)I)zje-z?5jglgiD2LshnSJy2&FuWW{rv~P0d_qs;i(H7&pd2l+re`OF9f_^N6R?v zC)xwXlf*wov!C&)vA{QEEt%}0US!bz1=0lSd|N}$vVV|6m@ zohjXsXAvWhTZu2DQ>nwu9|vu79;O0sX3IKOMmCZtQa%-b>GdN@bIr6OH%QuQFjOh4 z`!+}EXJs;~KpHv5A690+dJoOs#i`=EIjsf)Zx>7(iDH)b>4&fSCM1c2m-N3TL+z_( zn02N6puTq(^1Ccx8LtY+!*TGsfE}y}RA+wO0}hH@415&GzEN6WZzevQi%A9S!G8A3 z^Wl>*5?JX@`_3|K&M3fP$V#JS(O!nj-J{o}Z}If1zaXl$Ygm^f%nJ7+a@-%0p-6lQ z1$yOwXhw_ln8&z7E*q;@<6Xx2Va(}PuVB?~ko(D?g^V&!D6sw?l{=wwDRG_mPl&L2 KZg7=HnVWZ-BGJ&g(XBtCh6cEZa1~LYsma!7GPqx7eEHm2@)p$3qzZ bI)1_i1cK-O0z9A4gAcgb$G{On&~gl4t1?FD diff --git a/target/classes/org/realtors/rets/client/NonMultipartGetObjectResponseIterator.class b/target/classes/org/realtors/rets/client/NonMultipartGetObjectResponseIterator.class deleted file mode 100644 index 69ed825b315ed9ecc1452970f4704b8da994f2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1431 zcma)5+fUO_9RAMMty|dy$HlwO8*JrLKm`>f8iR%eM>N<4ZSASV`A5ZAbW5^u-qy zA27iLm^vfx{!zx?Y3DW(5+8QX&hPSl-|y0&zrOtdFo8J*-55^d6h_1`DvmJ)8pdTz zD2QWN#$*Dw6eMt4#vKJ+m{KTcTE<-&_hj5>Nb;?UUh{mu#=u@O$Q7=yao1z$Ufj?( zb*<(brnaOzGYnmZ<<$J5?{dA$&>#8@TU%(GDJni|ScX5xFqAujaBM<;g+Y33uW`X> zSiDfHmbm*|FPUV?EZSw=T+v-ayqiYJuNb87;iB!XYox{WZP%kezNeK!YFu8m zH_0tmbg#g-{2-7TC0W5^B9}i|N71m>P5w7MVfIl@&|6ct*0s=0W~FG?+%kV+h{^~4 z(LE+oQaFQb3a61tp%;BA^kYEAYzkM9rH;2zUsztvacq|cyX=U9siIbC4B7T<3wE(q zuFRXfO0DY%>G6U=XIl#*xF0Z#p4j%|$`wgxQy9b$!`z9P|1~g%o_2j<*BI0jFY> z*qJ8Ct3VhqC_r8#-9TbBldMBIR3++X16`}+iHd^jNbR=JGn5B>p@P5Cs2bF&?;T8o hAydyIV#+m{w5HscdVq8rD6I8uM{=wsGat~YzXAS0Ilce@ diff --git a/target/classes/org/realtors/rets/client/NullNetworkEventMonitor.class b/target/classes/org/realtors/rets/client/NullNetworkEventMonitor.class deleted file mode 100644 index d79086e77d6f863be46513d96f91832a04160d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmb7BJx>Bb5PiefDWE6{e#FMcfH9t$XoImaQk_^}=oj3;;c=VnE%>*zGO_Rn_@j)o z$3+Q*!e(aY^JH&sfX@R_6(z(k&GhIj~7}%5DGDA zlO;t1LS>dUp|B!JSv`O7U-o=kjdf2peXICj$?m5XSVR^%!r6a?6E^1O5>A%0EPfph zk>VTjsraDQ^CD~=j$HP{K70HQdgDh5D{O7qwyv@*P8*O%fg|F0jjaV=u}`s2(W|vH s$Xtx9POAyhcC4es7*>SMgyS+sGVlEG;tU0!J|1qzm$4O7Y{$UL4}zbWF#rGn diff --git a/target/classes/org/realtors/rets/client/ReplyCode.class b/target/classes/org/realtors/rets/client/ReplyCode.class deleted file mode 100644 index f71f658e8b9c391786542d9c407b6519ba45d78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5621 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 diff --git a/target/classes/org/realtors/rets/client/ReplyCodeHandler.class b/target/classes/org/realtors/rets/client/ReplyCodeHandler.class deleted file mode 100644 index f6c287835cf953c0df2a373fb02137e0679f5ed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmZ{fK?=e!5Jmsg+G-Va;~nhApjQyZt^@`5u?@8)BqfbSujax7cqlP-(S_h*nE&Cw z;m_;+cmh~r9AX$EB1|q^Wl|hOCGTsU34%XQ;u9g-+)`25LaRE&$oZqbnpA8H=`yn} zzx(25QSycpVr_C}1eaEu+6h~;R2D*6_6rcEEy5&MIoqF0ky^s)FP^A|%OdNpbmam9 X!E-+W?!Zmxw1>e50y0H9 diff --git a/target/classes/org/realtors/rets/client/RetsException.class b/target/classes/org/realtors/rets/client/RetsException.class deleted file mode 100644 index 4aaedca857f6ee8013bbe6ae7060f5379b970691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcma)(%}&BV6ot<~p$I65p!k>Q#vmFS<5J_sXktQG2ys8w35+Qn(iZi#T#>l&0emRq zy`>sKOl*^L?=)w=duICn@%jef7~6SdvBpwoS!da>v1wyVAbX~L9i0oL8~e8c)`huO z0;QJrReLnJQ$bhWdGw{yGOqM)WuSSTe6*sz4h0%56ZD)wNiQ-%NKF(vuBVkBIXBc_ zKD%ldY2%*?)Ecb^`6wMv`aP!;1={bO@?3kM!cg|&LB9+F%{kkCfV%y_JaMj=m2u@L zBvNgzL!kZ>HoZ09F{8j$S2{lORQMx~RfLTk%M!~nOI2X+f5#U%VWS*Mx33)63YMv))(hJI)0h2a;!E6@&3 zUWQ#?TCzFD%*ZXK6y1~8w8@mdO9i1+D6~yWL_rEIRR~2Yr94tvTU4B;Lpvpzgvq2*d_NIi z_*Q)21K08^t|gDk^6|~J{11NiU#R=eOwvgkSn%a$?z!ilyU#xRo|*jh?=Qar*n%Iz zsK+v~g3jbAVL1`O(@-OrL{i377!gc}i59_0Oh+&ST@14_PE{Z! zBOO643>ld)vN$a!W*CjgMPMN>hUp5-h4Bo|h$!=7P-UDAqXo~3$#Y_OUQAyQ!;3Or zlJT;Hiu8U>ozl#lgzBMLbxw`tEj<-GsAhX5R3`LkL$&gzCShCYYM(Prsm63HVVSxy z-Mie<&lol7BYDl7KdhQ+TC?nf8a<&B8Pn3Hoa5XGHh`l2jt>f?kC`b6b<1H$2=(cP zZuLv>w|9(62*fi}OsRTEH?-k=dQvk-)X5Yrbwin?ni^G2UCdo$z?#uXPv=m^oQ|2A znzAxxjt^EYmQ3lIVa1N}dB0_4k7}p$TFzqDp`2#faJt%Wy)CY0)k!_2Tk~|y^$KK- z?aSc{yFV{-3r)LG8`?XT`>|d;)hVZhO=Ti2-($x|L99zS4MCSfRphM}49l$y(FB;6|&ie!WBCHS?s(V@o4$;LON z+uS#m7I8jXD5O_k#b9@ge#4TJ%4`&RuVoEN6;Hhx)IRT;m2s|$1c}h)$-JK8)swKr z)(F**oY7**Ogf!0axwdAxh}C0cjq2w3(u+0d6`s7Q9^?U*`RBsN0>-PdExYoA)(_o zIu!DC9c>YY6Pdi3)b{D(N;E7H_h!)~6x@$361JAP5jJ|KiNw{MHfZEDBd1&XoHk-= z8fjOs3GL)*vDp+CqUchv88I2JD0mgG$#`AC8#qT4i{8Anr?e?iYXxuOyo|RLjNok< z?2Y6cUNT%0)8q-GPQwhH%$RAFn0A!eeB9G=%aB`) zw_-6}p=`3LPE9R&9TfJH<@L8xniEhYMwJIdLZ5$uq>GbkZL|ZebDWEKs_?LlhXL>ipL`6v8+-UG$n+u$EJfB)2ANZo5gJ(MBGS|wotD{y^<;w5~4rE9%Gn z-3w?Crp6m+N{k0MU0IyoK=T6b@nP)8|9+1yU==?MSKq+B0<_14OUq3uv6znqh z3$Eig(K5~(u+F8obt%2;3iLJ(N4o_gl6jvG*RY-h{vExB4U6S=nA?p?>Y^EON^&o+ z;s8PJW4@2tFgtl{6g9klF+1p&2+W-In diff --git a/target/classes/org/realtors/rets/client/RetsHttpResponse.class b/target/classes/org/realtors/rets/client/RetsHttpResponse.class deleted file mode 100644 index 61377b7df3087ba085c4bf2660babbd0a7426b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmaJ;%TB{E5FD4%&;Wfv3x80h7c9;_Mxa&#A+=v%(p7K?aTGgog?sdXO!#O!SbuQcPeN*ltFgAHC zSvGMdw|sF{Mv11>$@+jmuUfwf_w>A?h$D~w9p61?OF*E(p8$AGer+_lKIW=CTa0)( esUdCnHRSXUa)$F7r-N<{=^ZL_x6i%}T>JoZvVIo; diff --git a/target/classes/org/realtors/rets/client/RetsSession$1.class b/target/classes/org/realtors/rets/client/RetsSession$1.class deleted file mode 100644 index a49253952fa4d03e4e64c6063fea336b36ded0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 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 diff --git a/target/classes/org/realtors/rets/client/RetsTransport$1.class b/target/classes/org/realtors/rets/client/RetsTransport$1.class deleted file mode 100644 index 55a3e0baeefd3cff0bfc364e03d08831f5bb41c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmaJ=%Wl&^6g|^~+PEo6U7);cN|GiH#LW&7#3m{aDJ`h2%6j6AlBpa|7*7gYK8X!T zEcgIE3UOnXpr~?X&CI#4bFO@6e*gLT3qS{Z4k~zP;gOAP2W5B`9^2Tl@We*dLd{0q z!mf>mg{BSPLd(KahSircmgW^hq0u~LDE8D)FqHc;7KgLRKwd10F5O)s)Mou!q~M!?X_C4VE#`@xwA&4PD}`qomM&sis8D7mN71cq8JOJ9v- zykKz1Bzxq^n4y(hMAGyV_>ddEDBWBV&w>o~Tnu|hKt?Yjh z;Vk`+Ng82jr0HZ}WiOx+zUr|UsUH=D|@25 z4!#l13U1QA1Dp0Lil|{7b=<}-w$Y%kNsraX3$$>HGD?{w#qW?+z+Ku`a1ZzCEaCy} NTeKX?D$@zre*tbv7-9eb diff --git a/target/classes/org/realtors/rets/client/RetsTransport.class b/target/classes/org/realtors/rets/client/RetsTransport.class deleted file mode 100644 index 178884f4d63aaa79615e10895ef035830039575a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10593 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 diff --git a/target/classes/org/realtors/rets/client/RetsUtil.class b/target/classes/org/realtors/rets/client/RetsUtil.class deleted file mode 100644 index 79fc203b246b80e085d786c168ea5459e2d8bf24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmah}$x;(h6g@8_Y0`9e4!OjXFLX83gz(O>W*T)1&7 z8>kXX_x_3>;7&ZRJA{Nn%;Md5hj-3-_ubCVKVQECxPzA}ns7_SD0I2pRv8PHy9(~9 zh|63Y_Z2))@KA+{N78?+;E94U1zCakxb4{fgg{*?y($o$ayKo3rkw3q^QFRu<`&h@r*&oc79>lL~2i@KS&EyvdvxnJ?^JegF}-F?60 zv#cO6n#%1MZw=jc^*Lv^{<}}kAr8h)a zpA?9hZpmS-n4_SXcc!)L+pbeoFfNcNdHET~3>q+0)|WS&EuG?QXDgcy@vB1wVsD0n z`y0E4xozpDTPP5bcGEKT5YMYH$&METIN8#m1+{om#IzNPxBxdSslip3+>&Qnv$lM$ z7?f{!u6D=r^_9h(oCs6HGzJ9H|13UxQGu~@ zYJur_&1BSmqF7pPLBUxWR~RcjG#}I$kimS|1hmV}Mms;cI3h zw4FzYuN^|6uKF*zBdBY`hiLc_+^m5piL$ar)`NH&@sj8ZRCF?zWW^x)g~Y;5q-YaJ dU&N!G$CIq#Ns%W_?93USObrkJ637<8$X~D}PwxN# diff --git a/target/classes/org/realtors/rets/client/RetsVersion.class b/target/classes/org/realtors/rets/client/RetsVersion.class deleted file mode 100644 index 7682ffbf979df04b27b9b4d1bfc724af074df360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3074 zcma)8TUQfT6#gceNkSNef}mWr)gmN91QlCBEC|*pUdl}oEDkWj&?JLlLaV*mi@n%B zcP)M5!L|D0gRKQ!buCx>+Bbho-@E$lnQ2HdtvqC(eP+)7_U$`+^2cAlJ_FE!@1rQk zS@o%cGfJRHax*BmN6R>pFA6=*HVWb3#B^@KfVDkvYaGUmBlddAF-8Z#+A zsT{Irjnuf2wPf!*>N=zzJDHD?XSoKsLcoXa>?+8k#v zgzC#=Y{zgI7m;cTO1WVpg%C&=Gm_1x5t%m~Kh2AHux~}kN|GV-2Yc_?h{01sGT8Q8~Xx(b_ zgDWQcrY$d}EVim@vLKjztbw$lAdqHH16g({Fh`3>54q&Em1SX5qa$`MJ8Pb_q>&W` z3~LwS>gdFA5f^o|puAP49W5eS zMZ`qJMeN5uX1Wo$*By4;ePr2*5tBqtSvNg$>yk)YzH1?4Y01nmgSMjW+ko}j;MapJ zZD>ip$f%9id!!)7k}rbI%@Aua!2tD?9D3Y__|y-|otma}5ZE-IXkMR}$G>$z`sk z#O}mF%0t|pfrcR0l30C1F!&hCPwvsflu<$fI}xGlE^52IgE->4p$Xm~pu#sLc#~Sd z1wP7C0z5`wRo)43V-esc0`GExW8T640TvhCbP+@kA%SE3h3KxAt7LPWQk>pm5E|FI z*kc4@^=k;m8rGo38rPu3s?{}wHqxsj0$6dC^)6w>x3S_?e!V5#LmpB-s=9o-b$+_^ zgSXtMM3eYb#=*<%N0Z89K5dLME4H(P81med?Kk78mpU)+lm@< zcoZ?#HXC;oHRjMMVjS9Re7LAF2cBoFRJk+&o-=3d9;Ud2?xFc9!V`}XsVrGXRI0I# z(n{UaRqE>~d-#$gmD{}IA^*4s-1#yq--)(GCk4khJ7iD1{x$JG7I2iZo22RCC!!Zu zNrZW}{s(q&qp#2NeLaPwU)?)Ikqg%o{~hIb(G~v<>P*qn^PqmV& zwu%a>Rg&>4H1$CNmug&+o?sYM?tX+C>6!%hoh+H2x-GO zKf@O}tuFD-P4LTjnE_A2z!f*eUN2;v=lun(ruceK;jgAJC@jJbZ%_?W>DtO|OTZxIk0mV;Fvj6}9 diff --git a/target/classes/org/realtors/rets/client/SearchRequest.class b/target/classes/org/realtors/rets/client/SearchRequest.class deleted file mode 100644 index f93e92d7fee1381b88c0288d0b78c8a56c04833e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3804 zcma)8>sAw27~MmFOhP~%6cm+O+bTp6wXIgMYRp9=A<;~vqOEjDMjQ-?Q&q8`qNbv*Vo}9y6?PO2IATFl#T^xQRlKBPNyW=yyb?t}Zm4)wd|wmI>nh%e z;!V7z;%yc0sCZY!dl9^k529>7RPj+5A1jC^3zzbx*?b|NR-j}R^d{@IhGW#6X`|XS zLlmee=6X8buv9OTbj8* z-4W4E<`TNDV1ww3_0#F1o-O44*^8Ib#hKPhab&WIm0nzbBA1=Ywk8UhjGk@*J)KJn znS)|WF|C)1*<>l5%H~tqWTI3kD%d1uS|`sZrqYzs=`1ap3c62NHOo1v;MmC8Ts+Lk z=rp;K^$NK*l2 zcEhUISdZMBvlc7{=p4z4>8`TS>M3$(JlPR0)Xl0Xq=XtK`3E>sqz|@LcFan)RspVw z58B}B_v}p5s#ZjLdgX=3WB3AJ#_$y;8N{_ejIRa0M}u1a_XpbEyUOft&%-djiQ!u? z1>fO&7KbW_S(BA%6ad)fmYsR7CbMq z=a~C)bQ_C{W{uZtEFjj}i|*%>kCN)ty`Kz9U(R~A=9u$B`W9ZZwNe#4zOGQIN?9cC zPs^c$w1dx}AzrH$7riidlXrAt^a_8SJNO4|#y0H6V_*pJBZw!6_egjz@rZ;+iR0MU zUat}FmvDr5Ov0Op4@h_y@wkM0h!09QM0`lX-Nc6_93_5I!eQd4B-}^*w1idSBNE<9 zd{n|aiJy`15b-eyZzn!3;T_BoFDi4@&m5e0*^V%Yqd3hKaW4!K zI77sMNV@VwFU4MmJC2E2vs5D}b1 zmNW{^W74M^cQJUr-_Z3lH+4XqqMO5@VW-)~+h*yKywg<6Y zBirmcY|r~_FSO4mRr-#=N}r>MvUI@ZO25`7k&?6{C`s2TXAvGIJCNilj$F6LL_S+cv06q$FV-PSf zFxcmwt9#CUyuH7?0=U3Qf};e-2}TTYCH&m18OD=5eYjroXPzmptE})=>gtkVd$uXX z%1fhNf-yr+dSSUYw$-GcipEQoE;T#3tWu=lr`|Niy z!{BGjyT_#{sa^UnX|A6P!)cI*m2XYal#7`XHFf#EQ_R57q1UBz#}Pw>En+dTh%li{ b4}BuE6LtdbVlUu64gwBZPPIe&J2?CR+1GOq diff --git a/target/classes/org/realtors/rets/client/SearchResultCollector.class b/target/classes/org/realtors/rets/client/SearchResultCollector.class deleted file mode 100644 index 383678fe8eee25987859eaa528d010204c60ac7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmZ{fy-ou$5QN9cj&G>pB}1vhx1wNnw&E-0f{pxGXmhJM(5V8{6nA z`qnl#y(%}`?aCegQ>=e-mge2NgX9d$-ZV|o`&Xt&BB)&FYr1P$9`lNfuU}RaI+jAr zR7d9*{ceSY^NsdoSVloEG3c6GvQhu(QkeaAeth0ZRIZ>fkgo%yOzI#5gd^mM1;&Xd Pm?TbnisMwy0nWYwnMzLV diff --git a/target/classes/org/realtors/rets/client/SearchResultHandler.class b/target/classes/org/realtors/rets/client/SearchResultHandler.class deleted file mode 100644 index ef8971dc2dbe0000d37b76ecb7e57a4f37ffb462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9858 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 diff --git a/target/classes/org/realtors/rets/client/SearchResultImpl.class b/target/classes/org/realtors/rets/client/SearchResultImpl.class deleted file mode 100644 index cc865488ce3924102bb3b3d980710c6240d8ac37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2785 zcma)7>vz*+9DdTSO_zq-VC6Cy#X0FZpdcW(Ih=Dqu?$%O9f+8vSr<%`nWRwsV?0NX zANhdi$QctIe)f;@_`FF-!t9ijbKdLk@;txGo4@}4Z3DnbJXWCM${-Hls*JjVY`D25 zPCgSuqloL67pogGJ}=;=j0FWv+){8GcN8f2LdKU07IC+LdqsSO`$FSu84nZ;vAP|5Uh5d1gx&WV54A^H&C=|4t?9d_-M%Oxr#oHSmmt+847ko? z3hoT$y1r@E8m8w{YOraxZO!kxhJ^7=*HeA$PE$wjXuXBNpmbM4L3cW ze_BGeGI57qXPp*LcQj1fnD2I$4EL6{WbtIE;pm!mM{`ZFj}8a?6_Xez8;;wqxrS!> zj_YyZdo|rM4co6Z4b9b877VXz`E~jvl!9mYvmwucN?kZDwBr+^Aon57rbxx`=Aa%IrKI8r zDk?^Ch}9L;R!}oDuB$x}g`=X3!z$jxxQh2NE~BNwz)2PF;Gl$elWMG6meJO%8Moc- zFoknH-B|Ta$ChxWZa>m2vsJc($|yU_WjDxdIg0&-a@+CCc!+NWc1yzXw<@DqhX8d(T1H2O4M)NhGf7Vu%Ks1W-w0)_s`w7B z3J>hPauU0Fr`gq4<}BllIH>62k&0By?m$5KA3CY6E`NrM4WaE8Tj z7U%eNa3K|jUYzP4&%-cW#8kxO0eJ`}VK2F^XK8Y}-^PW#iIdp$LrJUq_w!iyS+lEbclkOK%783WL_H{3Bc7HpioVcGO I-wZDQ0}%wZ+6cq>Knj3|Ii4S@e{D)+u<|)IOkS0$3Vrhv`7b_`s%|fZi!EDPOO3V_ xYo;!dDk${iqktrljgW}mUn@CNaWeFGoB@V^PAX)I14$ir-iDL+BkAbj_!ngyUe^Es diff --git a/target/classes/org/realtors/rets/client/SearchResultProcessor.class b/target/classes/org/realtors/rets/client/SearchResultProcessor.class deleted file mode 100644 index 6c61771c7e2a077abfd679f4dbea0cc93cc1c6d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmb7A%T5A85Ul34h?;oz1B_mnaK?)VOh`yHyI(Ml9b7W(YC+;}(j@3LNK8PZ zalYhAO~F>&SI)8VTCh$DquIuBt!1cUh8x23Ni%2r$?{LRA~fRowe-o~{rS0f365h7 zGHyK+#uu49ZV~PdS-q{6=Ivv}P6-cxYUC;OG1-7X=%gP4ogSf!Uh4a)YwO^^Wamu6 I!*&)|d%L4=kN^Mx diff --git a/target/classes/org/realtors/rets/client/SearchResultSet.class b/target/classes/org/realtors/rets/client/SearchResultSet.class deleted file mode 100644 index efaedaa265d9a4d93f84f254e82c521b633ca9a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcma)2!A=4}41I-_K?LQXzhHJROgwwWgoJ3q-t;t1%CclKLuLlUw|Vdb{3t`=pv1() zL(}&4wSDd9*ZT*6JB$^E3L}L}Lg9Ir2{&c+GGCiFqn+`Mu5)aCb59sdca}G~4L&Jc z5!A}0$74sgte&M_hi$a{&^jhu*KDF)EjVpmt~pN*0|{k_jgD+w4lzlPleVs9pY<<3 zVf-WE>2=LklvV%gp7~`U-2Ta3$ky*udIUm8tSj&66!HX|N!F9B5U&L3xe?Zo@CnPf86{o2v>l26N)riD z6XR!pl=0kllQP$SXzz3GbDneVb5DQ&`Ti5YDqbfsie(9fBw|=eU<9goJ(930<8caW zSeNib##0&3WIUI#A>jpsQmj?AQdK+D4t7fn*~+PYrmLoIHPyQ37*=zWAzidB*V8R; zUpG6PL9Wz_Z?tl)$}rwb-zn9Ld*$6Any9^fUn**c|X48M^0O!OE;nGqs_#DuisuQOd~h6fQc$tan*fie#xWKvNw3j<~5 uBV?2)nWcd;3lTEuC>eF2Ob&}(i&gpx4~NO(;eKP+LdnDbjLj20hNZtET`|@G diff --git a/target/classes/org/realtors/rets/client/SinglePartInputStream.class b/target/classes/org/realtors/rets/client/SinglePartInputStream.class deleted file mode 100644 index 8b658bc8f86abf41b7f17cbf0c8912fe0eefed5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1725 zcmb7ET~ixX7=F%X^VtoA(6m6nVlA3437~)yn%W@MC@r+1%xK4%Zo)RKO?NTbIPJZE zz)P>{c+;C+=!^|B)#>Q1KcPRS^*Lul$kdLGFz1~2yx-6Bp3Pq`o<0Mxh?_BtivxJ__Tq)KuiQ5yrvTNR@%GGC*9yGkpFpJUcAb5*{XihO^|kq}S!|h3vsm-mw$m&z+;Te%|56~d zZacPD7Ff#oj<#Fe>2?n4X5((vIqZ6jvCMm=e`d+<3FsT{z9lfaWjofj?!CIz-Zkqj zYLZ)S!))!DZCl>^O5HoKS$1K|Z8wX|+Vb3Xhl1BBHd?mjc*PpqYgs#H+Z(Pe5IsCr z3C#R!pX`a5_X#nRB|G||W!)9fZdFK%ly4|wZ1aA@I`nK(7sh7-;moZ{wJHN5j&c3JLSM5;&L1{zsFsn%iwRtSh!8 zYwESI=jGfCOyhF{6PPscK9&v4;cWw3xJpd%n1O5ZI)_E6+ZIT?I%^rfW8gY&2+aRK z+6_!0Et3}v)UYd%R>@!gJ_II@t;FP6?Vi&E^bKgSiZs#4Nw9 zaelA?Vm^%&1kUiL;Vi#Pa<62v!861)jTw5pLFqbu0z6OU@<$N4!V_q}@T%b)_Yq|p zMGy&o(PJzEF6E9lah^8@;w@ZYGAYSI8fA`{r%eARbp8Wh<&F^OL0?ZN;tz2uorpa| zF#T9+(>(-}p&r7yU!n21{d?r9)E9b)l$8*e=^^?XVqX-F*r)O`en3!D;Y|9N1^kB3 zBSJaF{VefMu!Tv?6ZI+)Unb_8gf&Z#oZnO*M1=Y|#o0WHcn29~TP1`nbpiT<-U4|A ztk4JclorY48v7Yh%}lT8DSdk8_D{Hw>tS>ymNUwFvaS#tUbrN8DfxqEn`7-UuNYg_VzAUQ1&nw#u_~{Y8Y#b zNU>LGT~Ig-+9XQ-6-0}DL>Fn1{?S}Mkbl-g;-tZlO1Z3xpYfdrC8Pb4!!#}7Jx0j+ z=edMjCy&ZcR#M3f-`G#4$sdS*;1W+67$Lu7e<1lYWq-zge0eB7(vKHdQC_Qm10KUg A(*OVf diff --git a/target/classes/org/realtors/rets/client/StreamingSearchResult.class b/target/classes/org/realtors/rets/client/StreamingSearchResult.class deleted file mode 100644 index ebc9d19c6b5120fd0d421c1ff45d3865dbf41472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5468 zcma)AX>=Ra75<(rOR_Rvq9jg;O_(@9Y&nS`DO=JeEZyjTw#N zKSX!Wzr7i6_U4Ha*Z-3D3oVKSwfPQyoEGbwH{oyzB z-rRSW@80{pC%^jc)5idujUPua4_AlqnGil3K_#vZ<8$)-ybNCm zD^jTta#9)7$~!c*BR@1`+Wo1kOogB~QD}%?ZtODJ^G+(=9#3U=nuGCF&RL~U-JeQk z4JU6?x~;6x>TTX~+Q=r``yD%#O|DwYo#D)SW4CRM<`~hX3RMipp^{L-O6N0KuFfj6 zk#Y$upQWGG=I(?!;-svsLQCATlkK)?q#eu7@x{rtC($Lary=zjER)eck*_5-E zdRlsVTDK?!I;}yPtz%T?hJ0p+X>T@mq`4A}TL~k*#jsN{_ZI`saEh*-HN8PbXc`#? z*>4(lVz|%D<-r=_(_bc`S= zQMnOtGYdH4F8Bddr*Z{1L;TQ_9kLXbwzQrE<`Q&8oCrr!xgu~{V%SXV?4v~%wnD8t zEjY~dZyz;M3`H*~&YrAe+ID`#F$W8h)LT80&kgr`)fvv3qyB58-^$wwvpXflvZ!p@ zdu=OW=5m(3Ou9$IW^7kzc00-KhMsiVOd9D9JDJb0SPMoK<`#v#mRXlir3X!0LEBbr z&@~#yF(Jbdg~rSDOg`u6J4`*v5@aa4Gi+q_t4!O{@D!dF`$rkhHow=`C@h|4k7euT z6?r4AJC?uyqoA>FaL=-7d#x-68aBwT+2!~{!^hC0VUy_Ih+YkS=vO$WC%el?rv~+` z+m5<5q}y&6={_~A)RUH@pOIUlo4ZHM1k=R{>92^{#vPY)J%nd8Jd0x?9M|w1o3W?qxwb-bY=hm^u;#bo+j;Z7;ztS#O7xa#cZG$%THD-Z+KxVCTbcL4J4J^17_rR} zui3p6D0KUJl1!G7*eO|ZlS2p7`*?P=HWJNxs;wT{U*sQ zXpD@Q*+HSs5?b>JWL4{wC7)ABaZNl`PVzbISe_F0F-f@yp|4tDPC0`-H)a-Pg?se zA`8Tg9B~Nb+$&l&dmuG*WrvhXD3$9XUoe0fwwbYZ@o=(5^u(n3hFmY?2n@7b)VhTi z+B#l6E3gWU&@dmXv4&U5wQ^m=hdIBnWZuE~x{`S(=N~DVcOfcg1@}h5gTsB2>8bA` zSKr0d$mbWikq+$H#4MLc!u4It^5)33EYMxe@CQo zJFdVTMH+ql~eSzU(^SD?ae$6`-n&anenEHOvt zRy~V(1C?#Zj^LF3fq?r>UXNhD#O+J($BJm<5i~_l4Z7kKo9%7zH&&HydK_UAWj4--}K@7rXEK-utt+^>hNM7n0LL zyt!UW?A_E%QTHTfwT+{dGBy00HICR`%!pM@pzR>Su>ha3aV!ZOB2E>=7sPos$9oXL zy;z1lI3Ig4jQcTy1H|+JT!ROhjfeQOi|t@ zH9QGo(N|CTYgGO^mA^sdZ%(6J+EbJd7BJ}YF{q0L#;~*u5T5d%Q2AR_{!=RdSqT`E zp6ha1Dd%s)v?_m2mA|0MUsC0-rtvpP`VfDIk)oeM9%cVU54Yj8grylQK| z8&!crQpE?~`%Pgf6gY@LWwGWOXc_n|VgDUY!S6|xe?&9>QWDm3KOvV>E^NWR=}fWE+a9NwSLpK* z{373QJvq}W*isiV$WoiQu%1sT-9`_FsK7ubjd-EIO-E)I5oDF57oVi~HrC5mTFQQRzdccLR1@2C47#jxlO#f8M%guz|#hzM)c zD>OF|s)@=^MNlnp4G0?s$zxtWk*9o9&2nq!H!*M_HAy0B33QmaADX=lM~%?V^^VTAfX6 z%TS}*5mjfQQ7tb-R72)S@{|y-n|vQCn~m)i;W_@AM+andq}o?uiE2(Ug_>3!Pgh5w;5q(@*KK%F6OH9(X1}O6155)YBera zYtgGdTyPiU_DP=KgezU1uaF;;zPs&wN+@!g*B5I(D2r-c3Eow{8ilJUUV%^l4`Rsv Apa1{> diff --git a/target/classes/org/realtors/rets/client/StreamingSearchResultProcessor.class b/target/classes/org/realtors/rets/client/StreamingSearchResultProcessor.class deleted file mode 100644 index 336fdbe0d721ec1bba5a096ca0f3277ca0f17bc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2773 zcmb7GYg5}s6g`U{ij8;#N(d!MY0{>~Je<(bghEKoE4Vd;U?9-9FbXImTZ|;9NvD6P z-_lMAGhwD*JJTQ4=~+pUjmIM4gIBw&d(S<4@3|}g``??t0o;a`#s|o!(TBMdXY+Dc zki%jMOL!<}%PAD_wSsTbNTDe0SLAF}!J{-fkXNuKHy_JkJ&i7ua}hq%0v9XuR^?DDyX)33YnEx0UkZ#w12r2HAvt4I4R=-`o+%7( z@gYeGbQO)NzFMp7>h^}VYjUTjXq7c{OS28R4mRWNf#C>DMTac8JW|D|?w54UE+4Gx zPR(@JY^$t0j%AZTdbc56iA=#`p}21|*6ZkQGi`zKOmxI%>uGr`bywSK$WiZpE7Y;f z@Ht=w2FNX}O;b51&tMq(oYsIxwBLvl$N)Kqo=ws2oW(qJY6>TiIMi&1wasUW&$Q=S z&akMp!d8w`uU)fj_1UJdgX70=bcYVSKwB(Mp}wp=Egmc*%8RThwp}GD?6j)(ONQO``u`X z9X8Uqte=W&xG9Hi75%uZVn7a8a8<#Mif?gM#fKPF@STe9F(}Y4Z=4pVl@LFun7} z9ooeBt}A=9yJcR_lY@nPBQIp6r1A@M6ivVkmPeH8i>|aRy1LaR7U&-k!?)i!6 z^tj#UfoIXqe92^}zE6NGFoy8}?-VzsncFL8&d4#+uhCuyOVSKjX`t5;rmlm*Ixo$Y6@f;9W*VO=E_+xXzgOS=ShMA24eDP(^?3}rLGxMGK_4~(90CRYoKsQodxP`R*%*anhezFQ? z6X?L4{LCwOoWKH}D0te5X9;xSxq=r8UNR`vBKPXH&oEmMZaM36!}f*ik>Gn-)3&(d zXV-jES1qT!#tql3G(2+Bc}>(^lQRql&U;lm>lu656{lAB8&_mCR9$g)4BILddClHm z7A5|{a7s3J8Ro-thWJoCb;~Ff#qO%GEpwkC6&_<*RBMLmw~WcTW6^RfKhN+z845W( z;MI)?w+|~K+~X4D=?#XMY#Kv%!E*SgdUcDt>&BK%n%;si4SU0IE&1P6#{7!qG3en* zT4k(PXs{*O7Oy$T4!22%K`U%%QMc|eM3WL3BM^;7UP+uHk?7r?$!oqP97;1#_-yPL zS=(^R*>=5BIcG%X8q{s%YchyJCK^0@Z^?d4v?^<7>Z&VD?s>w^$m}YHFrlIseJXlz zTSY$xRNTQJLpuBgT+S`y0yxB0fFU+~Onht-yfaxyb50nB(}dt$l=p(L7Ry51RL={c z?$SlhnMqt`X`ZA?+PF(P=22?GNnEOjNQpEzrP6#bI?8e>3KJzlX;~K6g%*XDM%H33 zUMr!^j1XvHx;kMR_BWYx!wxvJkM!%dD`D?%B);pmtW+j0rPZ?2`>KPdv`$BG;1Z7h zFNzTMlB|d;V_rJ_&MpQ#2fGH~e}~J~X9T;~qy7 z8Q4BUt@UJHW-%mqV3cSM{vut9hV%>H7a(qX}64~@OYJb+}I-LWw{|L-dZWU z&7c~E_R7^TB3)b z42uKQ_K~Fi#K#V|2z5&DQzYskO9Ci%xgq)XRNu%Y20<`~9~Nke3g zx7(ssWq5mx*nRuE@&}hWaHlj2D|)Gv{qL%j>4uU8jnJKM9z*ZsV~^-YbXN5N*!)|T z_UvvDv-GZy(N`cwKbn`oqmiMf0vcMJCVPffJCs-GIgvX6%jJE<_Mzlv_Mv_WYR<|W zRM1NemA!|?b}-I9V4C8yVI|JtJgwxu8C;-qr6;jsS0z{VG2|n?Mwwj*z`V x)Fh3on2Tr>f;BLGhztR164=ME1obiEW3&gDpc1e~0HR5sys%e>YXPn6e*jzrRg?e# diff --git a/target/classes/org/realtors/rets/common/metadata/JDomCompactBuilder.class b/target/classes/org/realtors/rets/common/metadata/JDomCompactBuilder.class deleted file mode 100644 index efa4400a8105e0bf6fd7c460fdb3104a73e486f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25641 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 Od~KwA=*=xl3jQC)5&uL0 diff --git a/target/classes/org/realtors/rets/common/metadata/MetaParseException.class b/target/classes/org/realtors/rets/common/metadata/MetaParseException.class deleted file mode 100644 index 718b47550921c084cb0b2001aa7c78028fc23aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 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 diff --git a/target/classes/org/realtors/rets/common/metadata/MetadataElement.class b/target/classes/org/realtors/rets/common/metadata/MetadataElement.class deleted file mode 100644 index 58e290b29d0e1eb4ed0ad6a573117907a1105193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2636 zcmbVOX?GK46n>`J-X_y_I)oxc5CO3%ODvmcYiXKJ+t4&AnKTk`o2Ela$x^c*#Rc~T z_g_(=y94<0>y<|p_Q{0VxF$NSz1Qd+*)e8_X3yS?|l_r7Uw{d41Y00X$%4lfpi zIEPXIxd6&R979EZRi$M~U_{{gAc-}}>jI+!4JkGS;sWQT_=3Qgzy&ET3m5_yrTC)2 zxWG$Nd|6;Z;1wxe5||WtRf?|(Bm`cU;u`|T1>Th6TLM!8Z%gqVfuz8@QhZNfTHvx2 z-xo*;d?3XS1=0c^N%3QW8G%ov_^H4NfzPD)xj;tX3n_jXz*h?VX5P#i(+UnItF?t_ z&9+L7YOPK}qaH0(%jIe%TDBY3yw$Lx(=EX$*=4)Z7*rrKhMAtt#0>?(@pQ&WOr)la zyaHc588c17Y-}`1M*r;0SS%~OTp^pEk=pd=aU-53t!czE@ySUeIYT*(u|#${W={R* z?dtu>bb4x*9D=Uk=FoDnWP)-h(y80_@M@Loxk7E6oT0)^icz57@itCojZ7+*RM4|l z=_U!;?%h*X*{0a!qIKSimaNJ`)NIs>l?CcaU>60?8g%nnJxG%Cc2W`+$q0~Cp(}7b>bJ#C;LB*{6*~qE*8s8`w_}`C8#c6!2;#pi# zVS?U<-(0RY?6Oonr(y&#`ReRC7ouWR^5A&2W>dGO>}3^ksqw{2R=uubjLCS>F3qbj z*mrh`-m;xtUb0n;OHIhtw45fS%AcNFvVE?U|DL@M^sqlU`*rE-cmTdYz(G z%t%|$ojBt{!>(1Vk{fwKTJ^P76&Y#iyz_wNVo>J_rD{b^_pa4)`#~FUc;zN?lLuGq zR_ixltx1Vhu@;{BITK<*v8+kBC+BOvE zBop(k`l5vLM!xR{o~u&_}uYE4+DKc=Yz`2wp>osp{1` zn07Ml^647WZl=0l-@r7?bYnp8VY-RweL~;Nw3q1?&9BqlDfL$7+q8iG0Q2q4AJl}t zgZWP8yR>%wA?CZ8Kdc4yKIReT{aQ%h!+bCEeVVH8XC7t#h}NMGFh9Wjpw_7$Vt$zU z5v@yql=)HSk7=6zIP*c~Lt3}~1oL4{|BZU%aS$@|UI(3K-shm(%=;aL&3wSYCNnP_ z^qP5%R9gv1x1E5LI|?WXfix7ky>?KegLZrI)s;t+h`JI7@lkQ2ZCh#Zzzq diff --git a/target/classes/org/realtors/rets/common/metadata/MetadataException.class b/target/classes/org/realtors/rets/common/metadata/MetadataException.class deleted file mode 100644 index c8cd81779daf1468043bdad44522dfe904072436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcmbV}OHaZ;6ot?5sv?4*AifgaX)!j&xYDpOnwTIP2>Y>4poVr#JE(ul6^RRffIrH3 zFRe;IH@3-{N6-D{%l=V$?BtQdI!m2pgJsjgmW6GB+_@KcrYVr#Kj;Z$F7%xe zD7CymwMYJ~3cK=lNIR95cIB`qLyyNZ_=k!@d(LIW#(qXksGA)xNI-$5%$) zNh6(`WODiJst4og;7p*p-@2EN(izI2?{rM)1^qJ)k@llLpE&nXpgvvF9fbOc<4mfu zt{g>_v^rJy;}Ec?OOw-nwQ_`fM~^~RU3q->+FbY}j#hw$1(qU9nPpAj~rx7TUxr8N} z6=D;O%d}!Zk(2>VaV!~>T?v8wL|!2Vv&z4*(zC1@vDW`!Rp^wM qwU)51k){{0?8f03nOWE-1=yOvc4OOjFe?d0rC@A|fK>veQ2PX+)SjpS diff --git a/target/classes/org/realtors/rets/common/metadata/MetadataType.class b/target/classes/org/realtors/rets/common/metadata/MetadataType.class deleted file mode 100644 index e9dea1e40bc00a3ade25c286c970785a84031a02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2071 zcmbW2>rz`)6vzJuLb7v#oP_(O*4~6bOGtsoHMI(GWm@w+oVfluH^$F){cn@;-$lbQ9~|Fze?{LkJe`R$*dUjj(ri60&m z0@%T>4=Eo$3E(pBbFdYz1gO*Iicb~d%m)f{%!djI=4T35nV&1nGxro0m|rL?G986$ z%zcIH%%Z{#=7GXZW=Y`|^N~W5d8n|&e5`PrSyotP9x2>me(6I+gEH1Kg{_pesbS8n zHxA>Cl2d8c8^_dW9>vw=)(SA(bdxJ=IdR{5~zG*22dQ}+~isHI}1J$SWaYNK{iT{`W~m+5u} ztoli#SXwXhlZkX*-C2G#A*}FgnhK$cnugia-Tn~PQ4e7gW(Zd>8$z7J9ESvls~qMz zEO1!laE-%t4mUX5iT+`+7dzBgyckAdEhVx?XqI|Ea(jz^T+KPnZQ zWO=dkp{Fa(@o}=F?7wU9_N>X31pOXdrXR8Xl~FbW5Xp~_ED6b#kc}Y$)S); z3dyICtP07kkPHjSvyf~H$+?is3&}sAkMSYV&OGpA6=~4LCUu_3pMVSPM|8bH_cKx& z42oXq3sC(!?zZa}(ACODJ<~s-=M_9$-}P4g24zC+u^HTxemY&M;uRC>KAzIsIU74)N}Yn1Uw>wB0@bPdPVek zMTAA@J`oWSQ6-{Z#DLza8x%FvE*us$qPHqXMUClx88KBkBV^DC(@J5A~3! zbE3}cy`nCNx~TVwx+Ll&JuGTc)ReA^iiw)mBcf*X=&$6v+ohM^_PF#fVE4G_wQR48 zux0yPL@Zmm=(lX0QiBA_4HGCiO7OcFC(yBaKs f5xm4Gey34?VjO>A0)Hbwx1@F4A0tomcES1=q5igs diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrAbstractText.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrAbstractText.class deleted file mode 100644 index e6f466eac88b1665db3bdabd4b7876b3b1d5f391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1905 zcma)7ZF3V<7(F-HWRo<|5LysOH7K^}h7x&INUeqn8Vpcqr!(c-Cf!LFH@lh54b~Zl z|Dhipe*n%%IwLd6XMc!4!{OZBB~6=P{gC_e>^=RVJF{{HumKLK3EqYP$nJ&lvN zp@vU0$l)^`H+9^~Ac^ZKRMot!hR;)2QS%oWB=BVlwG0urb*!rSD>dBFaaYIJI=&Hz zcWhTc)YZz|6-X}It}Ryt5~X^5aZ^BB^|md6>4xoE5Bi;^Dy`_ z1vR;2_XMg9&u>?J%XFmY_qdR~O3UkXJh#%Zq`7TMvtml=+s#UiQ?1#PzS)u+)~>8F zb=UNJ%&<^uJT;%06~}bjm35wW+tnwF<1r$hnNB~@GzOq0lG`mwmrwX}1TuGaTUJ-v zo=d5E+mahUbO}CL8s%Pf%wCUT((88HHD%uq1dW|o9+$I1RMNNHZOa#!pWtDXB(f!t zZS7dC?^ZomS}wKDPQtMq2lyT~pIR+hoyd3O#nU@W%h89FR3zRaR&7)PT_PG@2TM)z7@E3bm!b>3$3XZ8P-wY^x?wa?%PgKf!R&f z8%61P#omtR%VLQwU(BL``)YW=&R@L6{X?uNMHPXWeT3t=Z34_)9=N2Q9ZlZd>jITfWmtv)g4O3M@@(r;)mcZ5Z7d z`?pZ4k9XDnXG~L7=BzV*24^{*<8F&5;+&_A zJqY96OT>)AOT>R;D24*ZJb}Ooj(Mn$-*FPpF;Wa+cpo2dM}i=Y2v#alj0sp3&MM76 z#4DcXg`bfqzbFr&tr))}_7kqmsreTeuaMY!h2+*A^n7Z7vyH_9Y~P&_a+R8$OOw7(5z7 znKAY@M|FWWILB0c#6-w&F<>|qJ{^jTg(5Xgy*I=Th2?5w{Ul<&N|a(v8|Bx?4RGSH sykjHs(jhqsiu_Lu>w1}GpN2zBDf&l`t&7Aw5`M#MmKY#5X0vN@zjy6Pf#4w;^5JP?pD`!MQT*G4> z8b^hYwR4rZvnk_-2JAJ;o*{8P=M^HqM*Ewm8#8pCM>$^;rM&5=4GCj^#v(o>uS ztMxoJh9+sJ34h9Q_(vM9XiVKh`&pezHptP)iE7rA#B0uS)x+eLRQ^9np)0N!&*(y-xLW zfu0T8Np_Hzft&t-HqhO(2ll;D5F)8lA<#n4vK6<;iX4}r6Sv8u4{!%v)I?d`WVzr$ z55lBX+avP4q}K=QaILuK!b68&u{0D;On5?`A8>!hSdgqbysj^Z9>BMK0Bw5@{@{%| z^l%+b!2lVmqPdQnduTcONtyQ34EmEV|!`)bN##H&9i} zEe)$0)->D}h|gKJ<;@F3^Mwt8*rKy-3XE1Q+g$DL)J=C?)?2h>s!l_;Hl%AQJut?+ zpRA6+wW{Mb%dRO~p5u17@jB&(v$Nya3ObIFIOlQ9H(VUdsbkiE!_^2 z=kwKv@{ugJq}?pn=x8@*w+bO!DCCiBb^CaZM6j3+V;i1;*b>l}ercF(&vI-+jJu}2 zZMp&%!&eQ`hOY{)7Z^YGeywSG>%X>%U_2iVTWrZrhb1LzR@0VV*X@^e#AEK5r1K2B z5Qeo@e`q$m*>LayszdmXYgG^|PzzlZ7++ydYCx*KlYr_qr|UM%WlNDF9UAA9numc& zyv6pknq_fj~BY!mn=xGu-fB06th-c!$r~SrX?>KAmw&(vRyoYGq1t3M0jRh~K%1;O)Q( zd>V7y8@>aRyh}}}0nnRE|hC4N0*_A&l<^a)Py5rPkU8Drd!B8fD?XZWIz zv+gV*Pv9bZFiq_$YrjGG6&81sMXj=&dw3uBkteeY_>DBqF-y)bEhw8s(&s|I6_1%K z&l?N$iqVqdN9uD`O!hEE m3C`n#0K*L1p=PZWOOrjk{(s?GfMeL72zjP3T_Ij2Kl~3_qr_JL diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrDate.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrDate.class deleted file mode 100644 index a89c678f315b2ca10251e21e604a1e505d5d7709..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmb7DO>fgc5PfSWF$pdSDU`1QE&a-ez>12HP^v;z;FJO)RS&&woRx9q*wK1Z!M}n_ zkvJgE{3yh1?1GyFS`Oav&dz)DW@h)t&#&JAw9qJ_fCm;oyg_E0hhksr_P*u@5ceIpW9M33%u^U5X05_F;Y6 zM~Gt{jK*4~08~g!P**XqLx$4J53U$0KMG?Dbvl$H>LF@o3CX9 zb^{*Aq`uhoy^yPs99J+Eu{EuKn^0%czv&$bSGBX)wEPP+B?U9Q%VbKO7Z``0gD&qc zI!oPXBwg{!*Q1|19oi$^b{m&aWT;Gzz{U;Sv{6Qdq4nSQ;S6C?21Da~n$tQM9-kk) zN0;%fzI4BD2bSqM6u@B7Q_+@cqqRgkhb$wTZ+rp!Og{!Lr$N9HZ2Gs80L_vx5- zAvvAmWw?dgbf!5T5{E9#tQwQzo@L51Q<6J69TqD)B;#%>W0O2uMzPWS4&wyoBvH0M n#e|3m%D9(mXi@#TKUSl;c!J!&;8v>RPeTkOn(osWw6^76Jk<~C diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrEnum.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrEnum.class deleted file mode 100644 index 88e5cbe2c3e3cf18a268de17f45d8e66eb5a7e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1357 zcmb7E%Tg0T6g{0xNC?9#kRU1uDw2f9$WvaT5U`{SY84a~y6Q~YFff@(O?oKU`v>k^ zx^Zolf=Cta{SE&^y_19xfhx+y-0pk2`<`=e-=3epzn=gY!BQA4=nLXr7(VpZqZ#oA zB#;ba0E6CaD2U-8v@q(?AHsca9P!L(7$J-WF&@MOgFnv;49)3nzRNXN8m6|&3$qOM zYevrE(scyG#J{U^W!L0ZPFs_XVdZ8oBJ&iZZqBd_InNM_zqz<0vB99E>?{#9rwvOy zck>zHtn-XXNF;6R+}z-f;rSIXu**%iv{+JGD}X}DEu+XVmbRUo<_K;|+bPmS7B$_@ z=WR>N3(2!wa*az;ozWI(Shn1}r?eEAj<;PRltIw7Lp^AAt zVi>YK5&JVeDjs7&#UfIkl3s?9tNG3q zlVSS5&Mah#(&4&X7kgCMKzwDz>kEI}vyEp3qT&!*aB0s}ZS`MdwuLTh`>%o|YObgP z(Z!twOxdPMC(C!$>{@v{YrHKrTZyWtLQ;JZm3UR3p+Tp9;D%LvCic(u#HohY)LFbx z5LT99s8)96+0=?GLzRo6mJCU|3^BCFFK(PgFFpAd`V}yG|I{%wwvp#UJAI@FF|r+m zyoVokG%hFo{zI_jF?^ec@PCCeusV1$@1InnO4mnp4MvsGnLzRjl+HkB;0OUfUcFP; zr$4`v9{3G)bmVi1;u_f)0%Ri;x{c`Dsac~~BD9mx9-{0+6RzV%Y1cAtqKj}6fo|L) zVG8Z(C83@`L7tDsghw-QgrE-}(0z>1<}vC?YBBpIfCL#jSG!jvq cNIddbIarl4QIf%Mo7NPf4$*gq=04p03(wY8&;S4c diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrGenericText.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrGenericText.class deleted file mode 100644 index e5f371a38b613c703af5aea739159d80d527de7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1246 zcmb7DSx*yD6#i~I?UZ3yEFdTp>OL*Y2v%fMDFsZWs0oCG=*#W&3Zv~zGrcAC-5+9n z@!3R5A_@BJk5bPCf(a0a4|Dc2=R3>&_51q)fN?Av=!DgR4x|jEF|5dlj!_+B2BNTI zxUcxQA`>w@P&}i^Ljw^^>UgAMiXmFbZS$bU5HGyrJKQdFZ_8ejf$MF}l6TJaT=|5d z*UIP52BbC^w47fO3>^j66EEtOq6pS`u}qeD!FPChg9onCkByq#cB$A*!4J0VK=88k zgBl64W;=eR;(K;QNM7QS+guWgqMar7On4%2opsTW1S(u{JqDIn5^pd>oTCm*XInV$ zbG|2qCmDLI^8qu5l5_OAl)A&qb;25YO$KAB;fShqeUA_tYkoa&#Imbe={^NwOpVG! z7p6^IL0rd-iCN5jBRNW>m z6Z6O_vOum>lFMY(uel0*Qdx5*7O|vKhZv?V2Xy|h8K(a$HCwF7fICtxiiS%!qb{WL zbYl#y(pP7f4FdjwPRL5B`RlG%5{;K{l_8%}>$OyRlvk_5D>00ox6m^?KAsxg$$*th zUFgnV-I=o!%Zt+Ro%xIs^^lb#}7k2(U9LL_&gn`jSdZxDt?+)Vcm?1806cM(*U?XZQ_=uQp+hM_8S2l27$S?Rv`boq_{wk- z;nnby#K^&C%#S28lUn*4LOog&TIdt3eMC0*5#8K_9*;HAq8vuNm83)yW)p3DX#eps z%)b2j`48wIbozBK73f170gDr;Ap)~V`f~!IfM>`X#{`lz6pi9@xJePJ!IhI{R&a}A X=qj*`1a1@bJLK06Eev-_4&mNk(r6)n diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrNumeric.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrNumeric.class deleted file mode 100644 index e2f830428e186aecfb64166652ce82916c680718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcma)6TTc@~6#iy=S-P&=DWD+Y1xhQd2%=adAw&|A3MM5a@HQ=LS<>#3=@d2bkN7X} z1&k!>vp>psX1mbgqVTYDX3m`Ro$p+Be*gLY1Hd$1TdTHc5EVzbyeb1xr;V&T<)Bsze5dA0zQZMVxRk;xIZGr6*A-ql&yd*X zqE6tMOks~7aHq=sic=&*zmngc&~&T5bSthP7e?lz+D((>N+4=nzWG>o_oWy33i^Oo z8zJvY$dq)QVw5GJZ8KPBZj?$=xc-hS7{+xK zmaDv8Cw{4-SMj-Qh%o(277JH^E|S}rPHVli=ayw&cRpivj{j99jhq>ZTBt~QgMO+; zs{H;%)G7uIQFd26H9VbK+ox1NY_y|;p{v!KsB-G!1;a?|;>rdy%w9ioZ)x`4sR27{ zutI-nV;-+;=PumCXbQ)8T$tF zF!XLiiY%MhX~F{erzny|5!wm4pRiS|ELkaCKL!Y!kfW$-H;6kS))4N}$-pq($4Qf* zj~Yv>;xtdvAeqP=q3w`1dP0L?5JkV0klGF6KDp6Lg9mh{U?#&e5bHKBf((Zs&8oyA zeh@OSELgZ*#0cuzWKj>_6>$MedRVsby@eHlp+zt7)RI89Ji8%~ zTMf5ef%6S7a3Ak>w%ll4Zu#69YlJQ7Z^+2g|LJB?v>0tqbILWE3+x#g@F#YC;i=SPN$-=ATi^%lz@09Q0%)g z&7sH*w%thJ3zKG#l1VeAPL^#~t^c~iSmR~WVAYp#OeTe<*AArGjk?L7vRE_{=*3y0 z+clHGldYF-OVv&1e*6ZkFT|d>L?Yn8NKiF8qLmNM$VdE;U*|?041s2c7d-wGasGRNI z>jO1!N+a#KzSzUOFB^&MdDGWUR3$N^z@LXvM^gF=13-Q{Es%kdn>2mbUqs>0`oXAc z4p#TxJ$WuLQC>5hd)g*V753O%JaJ>vRPY%eFAMB6pTZ%|R1U{W{Bt-9&iTqA#49c` zm`II)bNG;JJ2Ai{KH{Iy-Jz9senrq6=j9`0HmiroKA!pwrP={*QNw$T^N3C(xi7ar=aL!i` z@WDP8W)-Hp;U*G;K6IYY({$s*hBD7IOs)G5WXCdZgUlGE%%&i--9VMm6*8&PRYTk& zlx9+>RR2ci0O#KZGJ8@;fCzAzB}zEVu>`sZR;4<1fYJYRw^AO*HOV01RKtxfH|IYG CP_fDY diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrPlaintext.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrPlaintext.class deleted file mode 100644 index 532c93daca3dc6a3e8a5f6d0813fae00c7f90e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcmb7DTTc@~6#k}nmm*lH$fZ#4TW%{_5v(D>il(s`5(o+LX}aCO>UOu;P6@vF15sE>+)rXwAo0}oU9~6>H!GFGhCr+w)E$Aos_Q$i+l`tNuFIOolT0$jxMhWo^i&YGsHm1@2aQJHTMb9ax>VAVN`-FCTB2C>r0XkZ zSCs^!4c8YC6|Ko#fwaBt*zd{#{k{^&n$@>*M_Qirx2!cr@V82urm(rnTrR2aNUz;x zcm_(Ry)8phjJzS*Sl+drrg8(HC&pUP4sGX!+s*DTUNbsS8kf*q9{s_ zy2{&}lWPP9PjhgbOIMk+qpyY;-LDQ)G1c{2#>t}nfO8gqE8w|Rlfg}hYx zX3%mqd%70zM28p>n7f$Rd9@c<_^%(AYAvN1uCs3f{io9s=uttLNi2n-e9t*D3%cS_ zQ+F#Nn@z{B3rwHa&NCf8E)l0=)T|W#;ZCXGXeI;(%(K7}ZXnHfp}z=NMD%g*r&Zw_ zh*BmeMn?A_zI6dtxEln5zyzTgYWX7=u3~@|e?S)37({D>)FOOQ*D*w?!**!JDXWtm zL{_4Uxv7KCSenWe=VIAd|M({u6d%68+(&eCAF<6n#50KwlG#`Xsmvv6IVv3(d+0g* z7!_ZC9sc1q#ydeKadPP;j|}h6lf^RaR~YW{Ez+Cezz$=CT#|T>QKEFJ)sq~m$YG2* W#PJg2j1Xa&Ks39>b(4Aow|)aWm2d?w)(^%(ow3b^*+yU?71@1}@`D6j!4#4TO-5 zVM61io~B}$);MDzh+GucqL>wkEIO{E?h1s>Vllfe5L)&swm^T$aqY+LM%nh)WVz0j zWXZE+eO>yF_74_As^+u==1QJl&H1*hE6;DyP_3NhH5#6qYuHLwq>?$Ql<$;tON2Fh zOBDoy4aXG_MQzC~fw)z(tyjyQt87;Zq|DMwxhZpX=~i>AJnU8rTA{EwmN^`%-jwzB zp15OFZdx_zQ(fR0*~Wt{%Wf*ibGc%ydTrmbA38d*#BWJ6Iz}9Q=#S!h9COGEf_KwXyYKOQDxIGXr9uNn2agDe4(<~&9o!-GbTCgC{|JNd<{iu(1UGgN+So=o z8R;UL3Uv`n_Rvbx=)%}W@7K3M@#*J>Kf1@L2UHoR&IC0kscn%8CH*SS?d6i^ZW2%E njZkM4FEC1$E<^1wzZ%jQV}4;+7-#kYmJnpKlN=Xl2XOHh-yH?s diff --git a/target/classes/org/realtors/rets/common/metadata/attrib/AttrVersion.class b/target/classes/org/realtors/rets/common/metadata/attrib/AttrVersion.class deleted file mode 100644 index cbdd4a5d746bdde8154261e4f7a9e4aab50eb134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2895 zcma)8U2_vv7=E_dk2C~mH-u6MwSbf~Aq}5JS}0$FRLf^Sw4m5+x+GiEP26k?=#Aqz z&UnM6qr-&`bKduPpK~^U{PWu~ zfP?rfh7MeeVlakx@t%eu4VPk2#L{IkUy0(Xn6E`~UChHV$QX%XCq`pPU`)gNV&#Jf zq_2O}Fdo5o-+m$9+z`XfC_WVPM`E}Y!^fBqp@tYHH54>VX)qr0I+plVz^xLzRM29y1(EJO_)iTe4~rdWR}bG4Gg0*{wJ=8g4CL zsLae%?EH-B8dHXA;NC`MU+P>INIn8Rc28 zs&)I4k{UB8xJ0|*r|7cA#LW@3D~@dAoIp{@46E>P%bp>U8@X3y&53jv?p)cZ)yQk}uvN4Tch;dt zdcDVq2Ad5qtSg-EmC0$d;P!{%SL<9;SFpOK#X+!y;m}sW;%n$j2usxWvP5IUm071? zUa*9iTS7AI5ekT-6T8^(9u2qSD550c$g4GdiQ;C%Yv!s7B(%LKsI#+H+3RfUpiR|T zQ=ROP(0^ZN92TY}H0}4SPuQ(ap@v!^ORHERG7Q65gmIH?cDSSAZXEZ-!*TS*u@C9js(SrNCZY9B{gz3{yqdq2o=MmvoQ8W&s z16+R{bu0e961J>4K0!7Tl8rXxl^bQxYbJa35*J={nFgVuf=5bD<&Ll z=2M=t#97HKLi&|P6ZUXay+s{w(vJHM*o!Vc@$y5OUJRCg;Ri3uwdYyAX$g_bsqb+t z_Y8+~%jyrvJ%&8~7|Qq}R9#y@G|Qjf%pteDfSA64)&k;-*!U!qi!5T(5;phBnVcM$ zN+zcSruqoG`?N-Q1ZdY5(fTAQw@f`mZ&H4MgGoi$nWXXndy}fJKSW1TeSr4INQ@_C zeM>2+=z3`)sZJ~+InSg!UIHz0i!5R5JgYv12^7#0@Y9D)tUF0E+c<9H+a3IWkisa5 zo*=yi(ruFNFG=*zx!0W|1h5-oLjTc zura%w`UzS#b!c91o9Ci0g&1cLcoWkSsdxGTt0}d5+Y1e~;w}0#5t>((zk$@nXCaaM z?EbcsDP6A)a45G-ReR->zNOr&B;_Tv_o+L@sI{vL*seT8YDGA0REby=Qt4A4{rh)2 zrL;ZzqKD9z@X+WHgeDcCvZj@I-wOQd)%CCu;uI*PHAYGkB( zSkpB6JqE7(6|FLGpI-f}SHU+p;V}@yS03#V;(hM5LMH00*B*t~HcoOsl{=I$Kues- zQ#ehoL{oBn5`0GVL_JaeM4t8%@K0nUNZ<@zn{c+}3{yPEKml=>E23@9ne0;}7O>+* rpzzUd_JIhn4{rxK9AuY;FtkiIwSd(Bg=;|`VTJiQoyP?)w|D*nT_~BF diff --git a/target/classes/org/realtors/rets/common/metadata/types/MClass.class b/target/classes/org/realtors/rets/common/metadata/types/MClass.class deleted file mode 100644 index 0911641dfa2144b88bc38331b0efe3ea68800cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4638 zcmbtW>vJ2`75}ZJNGoX-JB~?W(n3hmAlo6rNlHSK1{6t-)yR&C6hRVRYiY4JtR$md zL0sC>@_s{j^qsz-?U#N4b;b;xp_9-3fB4F9&b=$?M&20&^>|kIoIQ`D#c@5*mE9TQ?+A$j|>5|v78!IO?B(u$i>zNI&VmfV0L!weB6;2oPQpG5h zGmE**`J5yZxqK;mzOYm-oLkgjlrtn)$)7I?GA77ercADq7nb6z&T|G+vFb>yVou)R|nLaC{WhH$o7qu57_ zcEeh1*O#qU*<5yrGhS>~O{ZeEY^Hr?*ju&9@7+VV^%!D$A?ui~OK!udOYAP`QueFf zlG$>p2pY6Y#9Ohv?5ge5{HTtkroKa523uigi)NkRPo$=TYQB}EDz;=U$F=^b0~EMs!EriGd=P+M&yMxO1agO&M{Z!Y|E)_ z;`-}o8_9}>F57jBTC`4HxfSP4clE5bUTD;;s~Yr^RmUIbc&XWLRjoOj$2TD-?-1`j z4F`u?6X%w%PzDSf!zlwl#621geY2vUT>+K1Zg&O^yoI-UtE%H>+&pWEn+DAg74oOY zz&m)C>VGR6zkngw5*1>*BP_uM< z#lSyUZHS7hHwJY&^_;vjc^pJ{Yd8=%+5wj=cWj~IDXO;wsnR;-{mE5SL?iO<9PYwV zQPZgDWKP^F8d|9#*6K~_-)%Fq2{}UKpEt4aFBZ-Gw}#+fUz=Ccgvjy$UqjSuW?C(C zT|+8$S;6lEqARsuogT<7;=_f&x*2C})oiruM-J1r7$RL3JyeFf$3CS0*DEcJBNzSUqB7<0U)JLH=B-S zHgE@h7Hagxn#3gTM2gN+M2#Rq^t3|jM9(O6jOc?39VhxOg-#HCNTJz&TA@dYzFVQk zh@MsGJwzW?=)FWAQRsa{A64l6i1T75>^mriV>nLFdx<(qv2c8m>Ck5w`BcRABYMV( z58O)8@5Tu_8Bz)-@nfRc!YSXvDUxK_$n@^d5E`^_8(FwrSlA(@d&a1TcoIbU~{q**RHJs#OWbWr_HMLpV6&j+dN0qQe> z>T^Nru>kdSp!%60^>~2#kwEo%6gJ16*nsh`fz%xfRR2kk_v8k)4yNuzp!(S$@1p_U z?+a8f26-O~@SY7+U%;Xt`~3)s&N8Mu*fz6)@f+Aa7{M7~Lw2Ci>p%nN#Dr*A!UMjw z2gnw8^JM4?Y%j9O4NS~@j$1}>13T!yZ(5GXS!(d2Vt&#$zXcOGj}n>HP{xG-usbE# zU44tP(U%l!D%gq-_CY)}2$pc}B%H+=LcPleJ9z_>ebW+b89G7Xd6v28g4MAN7jcQq zhH<%9n7fGPi3*KJ`i3ONOTvg;3L!t@FdoJuKC&gEQlL2jAdywK>y)?dt#Xk1i2o+Ge1QWOLo`LD Zi?q{smi~<}S3pzt`c9%O;*H>muL0_r{MrBj diff --git a/target/classes/org/realtors/rets/common/metadata/types/MEditMask.class b/target/classes/org/realtors/rets/common/metadata/types/MEditMask.class deleted file mode 100644 index dfe60ad295f7f408dca24d4e17e55f5a7fa5321a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1663 zcmbVM+fvg|6kUg2Qc6lSASx(|Tr9VSyC{f8s56W$I#TP1Plq;Bf^EVir;hxU@*txR zet;k4xK9!=bUFj$%jw>G_F8-GOZxlI&tCxM@j}5=8gWdg!7#00CWTq)=Tp#AnCm8U zUOo#wSj3XFmgTd;kS!I;#+Few3OnVuAGWs`wBjNE%=HGh>-w&6ExW$PklA!>PjFjQ zc%x-9qzhZy<&v@cN+J>!qxi1CkX*NHOKdR2a+4K?_@+~%)NIkR&7D?r-*n4-zd;eL z=u~;5!d*-HVK6QZERSKa=(u&=HF-lgu1ALO^s3WrI=0?41+Q_zb#Z)TdU~l)vqXt| zpGaOjw=6SCD#ES)xd1H?eHj3?W<+#%sQ1?YD&Km7NklqF^r2)e=@ir^uRYOXURc z)BK!lTMBJs*J-&`^Q9%H+j~Bkyj%;gi6GGFf>npL5q4}%Qzmt)$tAW!Mym{mN& zsyvl&Pr<3k`%&>2PgJa7UBOco8+fMTIo4GeSPwQ99G)DM-#5cVIGE^JcHCi)x8wMW za!s51_>U#^d$R7uW@`k)NAPcvM4?e?S$gn|~GB-Ijbc$FzgGLN}KEpte z6*5phhH!^C817;?PeuD0H<)aa7JX9XX=y~bc5F68!c4#gFjh#csFdmjQ=?3Kd$EUT# z3DQ5%6T|yyO*w&jW~WY&3G9FC(ddAHSz2tKNOg>1&My?KX*?`Mw3xs{UtNy!yD<3| Dw;NTb diff --git a/target/classes/org/realtors/rets/common/metadata/types/MForeignKey.class b/target/classes/org/realtors/rets/common/metadata/types/MForeignKey.class deleted file mode 100644 index b1f5be40819e236e00ad9f6c731c2a09c1221d8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2635 zcmbW1-&5O05XZlVZ7ka|rcO#r(xfFRscixdp|nXMq>iz{MYgGJ$RvHKz#33SmKf{Y z8UCx5hi2M`zV)SlRHu8AFjst?WcniQuJ*Iq+aLGW-@pF>U==Tu*hnLe%`_M`lX#|K zOX$xve5;|N;f02(hHVWs4RsAWDf+l89*qpX!=8`~2EE?y)EYajz1pkBHbdTcWBz28 z9n(E2clpqEPc|5`RnPUg>GDI<8CeXo`;|_u)$7!{?SoFWCb(>9sv4DUSLl&T_f@x7 zYql!Q8bhwS+c36eNDnMyCUlUIxoW$$-RL#it%?!;px&q%6n^rxMTxDGx2v;oi_E zf&1lSZ!qxO^1$L|-{fYQpPyNNxmovymVM&xS?5%yc;U79XV#~>9rJy2=u`O^*lSAQ z#Nt=JqChtbMOCS9kRy?n%R83ujfTfoP|dNm>X^PSOjnNGbDvv-mN^i|BFE~f?et|@ z{5&v@;jx>{&I>os?c3b;T+<1&sN0s)XHb5NrXhP7z9(wJuvRGk@E#RxMx_)K6)#0m z8vP3ALpp`o4gpRt1%3co4NlzBQE7o$*^< zkSYy0!|MMSlZ;<+&Q48tG+28~-FuHY6M056mJRN<%K@T0;%vkjp2*pUjoy$}GqT9% ziA)TdxEoyBJS@;{%IIEBVIDVdljILcn?i#0IZ02F{*k0>q<<{wf}fZ4G-v0O6!@YNf2hJ!3cRSqmsNOLfiElZ6&0RQ;Hyf! ztip8#zOKX{sqm}ZuDWAB&>~HuWhL=nEq$F#SoRZ|UBxfX9m*ngP@|Q7Z z#`4vIm1s!;gI2RiS4N8#vyDgC$0l9VyXep*-NldebZ`(HBwWD3cmW6a8c%}LKczTR G_~svengenG diff --git a/target/classes/org/realtors/rets/common/metadata/types/MLookup.class b/target/classes/org/realtors/rets/common/metadata/types/MLookup.class deleted file mode 100644 index 2a69f38b036725dfa189747d47dae534ccadf3fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3317 zcmbVOU2_v<6n?fzyPIU&(oiZCQHz3U3Js-*2(=Q@U?ce`O&TnyxNX)pkYwv-Q!Re` zGrafC3k@@6a0Z7vXZ%r)&%3+XEF}&t)6To+oPE!E&iCe@fB*aozzlwtkq;w?LKqSX zGL{tF6#TM+qJolw6~UDi+*0tdAXgRK4&emu2<8(RpNi*aAs%-l_#B#y3Bjz1V?BZj zbU}R~jty~ailZvyo&+Ven8_|Ir}GkK?qm&fBVp=V%`(g;39Fe{H|lkxk*MpIR?#di zk#mXC&X#^f!l86-skE9c6mG2Wxs)zSxVRrP7S)@HT-Gq|x3*kc!?|=RxsWU+)A`c! zYGy$~G<#3m))FctE+Ooo=aad#gh)A4%v{T+9ZoK% zmy4MKV++zQUypP>^R?aW=UJCQ4-A> z>sqa>nN`8N!l1QTZ8DepNaZs*U|_-6ZGkt~WTflXl4dp;umtHgp*D1@llgSRGIvCF zMq`sb^TWGNUh`U=ZVr(zSDRJ(=m^3>pwqh1uw%^d+}2GZk&^jxL9?hAWW8N=U!5dm zV$Y*a9yDCH_*RNMa zGpTO))1u=goY~(b7S`_R>z0ZsoR^SzvCcCs$DZ!Q?Dmw3`>2VDvd7ZtmdG=`BfE{G zq7HV?NOyp}jtYwQQDF#6L*4g|bPHdqFd?dPKyO7^R9I-KcmoqMwpDzEuT{K;*H!G` zfsAide2ec?e2)hzeh|lx;`j*8iazqQ*6_s$hXY2RaQKFwS4a=u` zq?an^?GSH@)cCGOoP~5(>{AKn_Ay$1*SScP&HzX-V+U1#x#1QbIL%1>NC)54*&~Yw zcEMe1_SB?|T8%BvT}8vAcB=Qtxw9-IX`0%Ogjnp3&wtk;E|PAEJSRt+BITXTIRjAP z;O!${Lebq4gI$m8fe&o8EU~)rO^iZ8@xf z_9iW4hakEK6a1h{{4o*2xR?l1<6=zsJcg5alkeUl-G_eir+mCj{Zf|DzlY1N^CkK!5-}Q&hISF2JN^s8@o2;* zfAb=VvJt?N$SgvHWr#99kzgl1qi$3(%X9^Ev@GF$&p{u8x{JZ=)ZYSO$R@kFauCiF zVU`FNh;Z?L5a#X1knjPnx-ncuz>YzUw=q1mi$hN_(zWbV;j+(~>XlPP(zSLCDbJcy z&M{$a7tuBjKgMVup5h4q_u8HJ<#)`h?gG-TwP`*@a|GKM+pC-M=>}chAg+6vJL~EO zqVitVMW1TGQ~eN&F6^&vN>-+#{cXJR7)JxRH5HZHIM$(+HpV-2sEy+tT5aRi4ju8y zhdgBUr*6Y2B5_vOMlFRPo?t!*}*zgk~oDAeEb_uS}kyKQU>*RtEo47pXu z_5`=Z4)6FTgI3?#e6mxmzo;=}x1Vl3Z$wTedJf;SY)d>~NEN4c7}Bdwi(vV>Wt*FR zch__qe78f9LfvWd&JK4i=|{n|*t0x_g}URm4cFuy;kX_d!ZVsqx9iwO*A%?P1vkWg z&-9Fqy5qd_dku1^*>v%>yff!f_f7GPyB?8XV6W-Awkb9uY|R$#zGOUBoJ!)XQ*Pa{ z+Y#j)x!Ze=I~ajVe(crip4Dl|2B`5$aq7)K^gd`LYFnd%>#eE~F7?S z2Jca@7`EvPt7A}PS+dkQ0fMw3Cx0YG%H#NM(|l~nagW9(H79juxcT=X%SN|$-_6;)1V;Mjg70o1E`2#Y zUob4iX@nvy$F?sZu{Lz8JFlM!01ns#so%j zoa_R5L&%VSBIYaPkHvhI{F5HtHZf|?U_W+@Kjss1R= zkfn!Nn8aD~WQB84g$I-=bBCuV50E-q;RIC}3o49Da%4Bk zbRqK@!ym~UA_6j5hEK&>Q4U+VoCH@A;FF2)D@kxQ0e&G7el-cMCBUyF!mr_a#C?vQ zl4QD%>`~&y7&aXdPvgen)w2;cRnU$?XJgRRA+(68=vp7CK$y}@A=Agm7w9RxoGB=M zX~Ei48XhpLwjRWD&0GeNgE2{VM*pN;fz AQ2+n{ diff --git a/target/classes/org/realtors/rets/common/metadata/types/MObject.class b/target/classes/org/realtors/rets/common/metadata/types/MObject.class deleted file mode 100644 index ca8f059b2ee93a9f193dfb01061378aae3b6cc53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2442 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 diff --git a/target/classes/org/realtors/rets/common/metadata/types/MTable.class b/target/classes/org/realtors/rets/common/metadata/types/MTable.class deleted file mode 100644 index fa029c201af51e92adbc3c172543699a34910b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7117 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 diff --git a/target/classes/org/realtors/rets/common/metadata/types/MUpdate.class b/target/classes/org/realtors/rets/common/metadata/types/MUpdate.class deleted file mode 100644 index 5224317619f292d6e84401e52d355bb0991a8918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3449 zcmbVOZF3V<6n?fzyPIUwKrBcB6%=clK*MWAsYq;7iA_sr(?E*~+hlDQH!tpPkotn} z`XBrae$Y6U!5JLBIpdFVJZJZ2vxPXc%(QpUxqDuo``mNR=AVE6{0qP-{3PRQ6k#kz zAz@L*l7cep%L*zAt|_>#V1+kU72HtpK8qhH_%MPOag&u>GBkd!#ZW~}#%zQXotKYd zSjPrS1~0dH`Ir}zm%5CGgv5NloSVs&bNPkx;!0sgLb7;UyQ5`It+Ae6ax9~IKOv#m>rE|&aWZWCiwr=(dn5hp=frBv&>(?ywYIMyb!Jdzsk%QM+}F&DHt z!5k)iMz^b$(Q=F?-B*k@=Jd^3LpN)54Ww0c%Ehnf#0AQDhyLj)vnOFAjSM-C0Lw&4 zD5RcDKfc>@3(lkVrtRo;4{>69CZh9vYJ4Xbxs6c~IqcM1ri967^^X&n=?%lIaXf-@ zW@k{kw(d>vDS8UyWE`DTC^$1Y&(XTrJW003aUm9u9<6-@c8yk zs8Ob>rYP3vQnPJU^;v^UQxz9A!F?#<_|AIZ%Gzzc>Zr)zw1n)_eYVlfb3pWws8AJ6 z(8;2~VvKF8M5R}TvZz57pMW^p>p3xdesPAm7FF0Bbh!84+jY=ZaR;B$1?>_z=TLDM zn=(FA@j1RwF^;r~FL6)CS1P{7H!8lxJr&>a@;xs<@bV+>Ntk$gwk|E4$ZKV9CUP~n zmn&hcZ!7f~qTCvVh7)kz*Uy!jcMn-IH38F@HzsfL?38eF2dx@}P7_M$_JRZ}wOjXR z8y1Yft4qqylgsTzOQ&IVdDjrcymT9Ax@nqJ?KJi%@Q6$GWBW7!oo3Fmv`q=A)Qtds z0f=T&?}~hoBQ{gsWzOpb8lT5^z!y7ml@OwM50TsZp;p`BIrwD8CwGFM1s_(-&Y7(Z zt9@2}kLpFVSy~2uAS|j*xtmv;ho~ z{&GN7SQ9QzZTF{(o+FFfrH$nlzW&kWN@6;6QrFbED}A3 z(xLkp_|3&OL2H!uff2&F4_T5_&k85$*Av_br$vN|WXZNe=|lGsdOX4b_oN(Qzh@;P zkUh>&cKTA{941AqQ)I(vH~@w-wdnUyVA$~ zSYP)y`ngB?xTpHMzljUt>}5Kt%XvB(-9l{Y(9ejbld3EJ;uDdidIH^^Ot%*!YLY}l zkKGYLii|j>@D@duaM1@C$PnMca53{YXGpkWk7_T&S;}yZGE7p2^Z%3KZMVK8TtZHq z;Sxgb8Ps$Kdoo+t`v}QiWbYEE0?|~z8dSU^qD^B)M7t^&84W$8pN<@I3(sX9U}OM~ zu#f(Fp}lgwM8%d1gdY{*2dR+rn04uR7neo&30DWg9qjK#@<7hIQM{rLizs0fd@4@} z-%wJ1+;uMC8uDG=!<b{sXj{1E~N2 diff --git a/target/classes/org/realtors/rets/common/metadata/types/MUpdateHelp.class b/target/classes/org/realtors/rets/common/metadata/types/MUpdateHelp.class deleted file mode 100644 index b37c25cc7f9f7b17d0d4f345822d9b559c74d1d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1676 zcmbVM+fvg|6kUg2Qc7wuASx(|Tr9VSa#0jSE7XCRf{YX#@#)ZJN|-e1B&Ux2mGU5? z4}O3j<+x80AYx}=d^z2F&t7Y=nzqC5Gg(X`5n&A(k88V~DRhHA>EwP21RNH4Y57!VfHp zXl19$tv&9V(hq}iacFuB3uVWx>#o5q;kX_d!qclxqv6P&b<xc?ODdk>xr!w$D|n$|1us>+!m^4YmV?a&M<~bTch4{ujwgDeZFkw_ zZ8`qBT*GE4{Ku+#Jz4kfc4{=rYb;#?!-Z%3FY0WY^mQ~_f?+Y*MlkiI$VG;cXk%fB zq01{;%|mXt8gsLBPhQ3NEDAHT^BAJ9n$cfE40mw@S+cvy>p+71n-O0jUyJxDq$sxs zz4YE9#5`dnPjVu5ijJ>7M<2auii4OFguP9c8f4)P@xf>44;fY{Q|2Zo22K&X%%BlN zkI&E-WQ7crj{)2x4u<;}47m!FBh@GqTH+g$U&!o$l#}$seGw_jxs(U(;7S{Ke_Qy& zcJNdi_+VT35FUl%^Ykml$4}6CS^01T8xNJoF??QnI>g2_*jJaM I{0@x&0dr4Ux&QzG diff --git a/target/classes/org/realtors/rets/common/metadata/types/MUpdateType.class b/target/classes/org/realtors/rets/common/metadata/types/MUpdateType.class deleted file mode 100644 index 69148a85e92f3c520de83dc7db713d0f3896e9b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3183 zcmbVO>r&fR5dMS>7Pg4NC6G(oBu$%`OK^dtNefNt7$vya#=$b-lAEvdDkw8<1 zk;GX%myj;2T7D_7<<*L|wpm<~kSV>;f6#N5Ztv!5zH8dM3lfG3j_vun?XT-r$B>Y$ zZPqlkT*;SJ335$+P**Dj5|epNTPxnJYidnGVoAN1ua`6lW9#`+k-QXFE9ypdO|8{P zV$PI$m9EugwNzzr^hmF?y1G)Yh7OL=HFd3$FNHr0mh&5h<<%l{&E(LUgp`-}DfFF= zZ+H@>OOCsna}C|{9oHkl_i_!V)pG1y%kcH4?&~?GuN|}v%5`ATv`zoEgjjZBT|&Iz zG%4eB$+V41r?q3an!aPvO{U~DbZcFAO@^b(xW8wT%Nrly(kFLbu3T?Z07m3Hp50)SS;Id8;wuIUL(Z8d?B0K)DO&X41MR$9aCc53Bv~KZXgblU8ZHMTF&ndbJ7N*tS z)9p@cp88J-ywb8`1*9hNs+Mlreo)ErY_Z50jlK{Q>$pVU7Ky%J3Vm2U#wR3yN~jP0 zgfDP7LHHtvWx|&@%sxz?aX3ZzGKZP{&pA9q_zMo7B7B9zX~I`IJWM#t;Sro;Jw~yP zP|Q=9rt=!1>l8c7XJ9h+7Ja`2xy;a+qG7VMYd*1heeZ^%=Ev(z|SQ1frT>=TwmrwN%TUw zDWWF?^s7SpEqwj1cliwle>&lPN=W}kLT-5U0Dc ze2B5GoIJ#MS56(`OjlMo{UJ_1#mQ+-9_DP0^yH(lpQBX)Y|*)mGk8Qx>@fxZ1dDiz zWjuohoz5LtXkZ^r{0JjRG+Ym_qeOw%xKH}@M+l0&WtF96!u}2afwP;j;bi9ATb%zD Sr&fR5dID}mTW`}hPYhXLfbUh++0J`5Fn(kQCg?Ap;&POv_FKc0cDKjk&Zjb zTeZ$in6@*0fId_wdn5shM=6>9IojQ`-`@A=pMU@S8$c1iNO+J!9GfXHY)aUYu`T$A zGInGOotSRCKW_(4V`g(vt?@Kp)56edw;NY_-Yv|G|jYF#@x ztn4ymsxS0k^+HFtP74k0nAYhQ!)V#IT&`QZsdst?L$+C}RtQ$vtEj!Oi03oZNn z+_nnm2G`p<*9#@i9idI(C$>$?=f&bV!n^+AY1) z)E!gsfiTX`Oqb!&2e{V}aq}&6xjaso0)(d!}Fy`(isH2EgBrhzq|r z!`@~o_z4FJ8km!yDR_#ef@hdh@ToYSV~%0GR4%Lg+VX+=L@jH}4OOENT9$CA;0VVG zKE@{u#hVlJo8WDUYW2=VMSk`N(cgN}Rj)}5cY`j5--O7~9C7QmH&u>dQ4s%Qq9$G8 z_uaC#X2iu_kGnn2un~^SZ|qiRV**Jy(m=#8;+8tyGo2D&U!#F@HRC0}S0r+5 z@b#mI%k6eda<>q67d(x$HG=@!^lUCdoNwYYdVCqZ=m|_Ci;sw&B5nx7#7~EKiMW{% zFB3l-;*)eseJ1RTm<;-gAHzJ^XZW1BugRw8XEAnxq2E0pUwB$WbWW1L+qgrN;%nhc z+$By}SO_fakOiTeSe(5;Y|z4#7qPIA^|b;EBC{OwWP@Q5OM$Io5RJ5$8GeJrZv-2H z2q!@bphT`ik*-2nj)F@O@cBsiN)%j5%63jynwHQ+*j!S+|t{8_P(8(6taWb_HF-df>K)nAe!%Qf9c1kw2is@N6j~^)Y%$%YEFs zq?3K5efql7S?V!xpJrr(rt|?h+@!3wJjZ_5i&tGQ(!|{(*D}5d&0vi1z*J@|GyVpd k*O>SVlZSmwT;TR=+!CIcHwGy$)G?ajagy98`4BeV0v$g0RsaA1 diff --git a/target/classes/org/realtors/rets/common/metadata/types/MValidationExternal.class b/target/classes/org/realtors/rets/common/metadata/types/MValidationExternal.class deleted file mode 100644 index 73e214c5d0826ece7efb402f5e85384af00e0ffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3005 zcmb_deN!7{5dR$sTwX5Frhr6hZ51)RNT9UZ77AXIqogK*CTUtg#UnZ4@NyULE{=Q< zzlDEjoS{=^>iD-G%5k5&OL7ygQygWOC%c>d?fY*2`uq1k0IcA99=RC8kYeB<@z{#s zG2^!*$Vc!bf-fQ{FhMbb68qfYu^UASPZ?8=qk<}r`%z+^v8NWtbG%^G9((rLbHL+E z4w3A3zK|g#E ziG`9_lsJr5B(a>`E=!f2XXPvj;;tZD5Gxf9d`&7>2*e>wX!?3&UDZ{4gF`4iS0icG zXps4_f~qT}cJoLvtMZXXl4QZC%UVq~RmOY5uzjLh93EaGZJW}yGDQksr8207F8ydL zrY>ugTsXbYd?zf*wr=mrrbS6};P%Pwv0`^CCh4|$#ws+Po(rl`igYj9FUd^`|0;b~ zQDn1zQdTUZZPrOP+LL89*`hpR%z#4P4c)0np6W%SoNSZ!G*JQJvo;bmm!7*!^WRtn zZyLgOv!!u(^nch&P{7#}Rcm-5u3j$0ZneFLqGToC5N+F}X2=bPQjglUVpWZz+#+Gx z?M2&GwG2ttSStmY0FIiYGd7??TeDu*yupiAoPKPnY|N$tO1#AOfy3hEc5CP8RH@qn zX0X6v?d_O1wuJ4bx2xXd3HSj~yU z?rN9{ZTfcl-&*kUb4EUEXc`S1-3&53?wsxcIb9Lk5KU7)6IpLJS8vmz zJ3;o2X4GL>?{JHLAvyXj=4lXV6p2dVI^HAM4WfrIO#J&ko+tjMkB<<4%g3`H=MQ{* zjQ9_IynqDRp20`-&XR{a{$$5PmnvyKs)g zVCj|v;h*9&&-+sf9C)Y!X@QMa)vuOGuS zH1}|y%yM{uHP8H#!vo@Ojuu106t-v~9%C8X z6nCE9C%($$y}&@Y?VmgVL z6rox9nCrwd%*)kt`FO$5y;i9g%f))JvR>cZUM(|Zs|WleS50p1sWssk*4_d`res^L z;Fj3pW=m)2tW}Der8g_9l`2t`@@j3PTHHQ^o0ZzTYTZLMhWJavGQ=W7G?(9Eh?VRn zDRfs2OJ8pt?&?mR@0t|JR_z8ix42_S><43F-*6dVh}9;Ho%2(p`0pDl`ZiwpIBgbjRXmonBB6vD}W_KjTtU4Y9!;mwIDhJGAwlF4laV ziY1(5c@RCheArQRQEpA=PGf(?(9I@wLV>d39+~_&5ZTn-mMOdd)t{l9(!OCfWi5oK zbNLU~Xz8pbzk?L1tTu~6I8-ukdMjhMC3LrLukj-a=Gqmvgkh=_S&$7YoCsc;m(zVI zg&|$DTTVk?F{BHFe>uQ{oC=1Ct9_6~zui618$v-Z1{s#F=KRw;Ii(lPQLuoQateb! zC>Kpof(|Hng+&ERSWcj*;5AAL%2-xV!E)RF_NdFV^^S^R)IZDMMF<^;PIuk*ymfSo zLHiG1dtABi#U5#}Cay6dlITxI#=Ey?*3)%6Y6*tj{)76N1KM}m#{A$e0aOm0|0 z|0HI$DTb~;Seu-h!7zP77=40bxPxxop!H2c5p)pF25^G#tpH9E?g`)&QpD{=A3blA z!VGCh-S}Aa6p=5UWiMFLXFE>N`3*`G@5i%=6J*ZT$-p{wg06P_kI{W(F)&RdGDBX?Vgz%Tr2jrS VHf__jbJI2CG3FIJPH!Wa_zesLiFN=0 diff --git a/target/classes/org/realtors/rets/common/metadata/types/MValidationLookup.class b/target/classes/org/realtors/rets/common/metadata/types/MValidationLookup.class deleted file mode 100644 index 9662bd034864297ca8e1ca030daaab242e3e9219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2981 zcmbVNZBrXn6n-uVY!Vh|W1wJbZ51)RNC;SM3vCG@$l4@ONK*kVF3Ac@H@k6j;|xE< zf8hs>Gj!USI)3&?Ii9<_A#1v|u?(}h=j?f&^K#EQ``6zu{{WE2j}q2n2qPB*Lr%g* z1YZexGXf=ouOoOEL0%{d5fsJmR+Jvw;_+w@JJ=Pcl6X88kFta(QB2?)VY)YneH=(w zmGCXYNFi6stY=D@T(PvXr>rx?^QY=hYRXW}S#r)RR!^hjjOd-c0Z)bLhD7~TN@m((MJH1WJuQH`={>q7RFVSb`F7?yi*%gJ3MRiNB;3PZQdyk$LW)+vH; za$k5JYEYpnd|R~}R4)d$Pfm|D-i|kCa{EjaH<6qUD(@At?Pf2kHIWRxAzIDk=?z^o zs(#I)r-=!)My@TYBb7p7kVv(zav~U_lT&3;Gs<@Sf>FQro0aIFSfv86eFjY z+y@;Eg3^>-B1=&kpJ}2YgmyUYRnXAR^{{0GP{c3Rt+RsLvqVE(Z*qp){xICWS@vxc zPvg(YQ!xxSGDiJGHJi1iMVd<|$cvQ`bwqbvjCB_Kp}W}+OMBZnhJ_w7Xs7LEF-Ya< zEcngj|7GwpamtXj41?x`RveWl(J4jJ~-NeIDP( zRXSfIsSo`mf8dkF`|CbALh^?`S$tk^_~aPLH+`~9>@+&WJw!ex@d-VrNcx<73I78# zq37uP&GG#yJ!7N?5){WMl5~?H@)*b- zbNGxnXugp0xYA_fRAVOIe~y7)3DyS@&VZx7<_kr-2xTD%E(O4E1j5rn@JIlBG7!EP z1dj&5lY#Ihx&ikle7VQYG5AYY?sI|gTS4CCa}0HtZXpo<1-|sW&(p7{e7J?-ZtN`| zHtdx>jN2Ek-CG1gaj6@6*9Q$=&07b5!I-!UxGV7|`3OwtaRZSl?y_iX8_U`FiQKEra;_4ahn;vM07J{iK-TW+`OI(pX+95?O}_0qP1k)J^h^p<|C#D5S-s@bKrOM!J)h=cV6Uj~o+Z{5OT!V~2f2hwbs}jE z8s&x+OzXX%Daa)*%Mpg!%kM}{MM{*jvTt|VvJ;wRzB=*xAI3TCNcCSJmbG?W2#*@( z?a;D!17Z25yUu$QtVaC?!tUr4S(M{yoB&~3m@{-Ng`v3Z242g0VoL?iCoXSRUIWAQ z-xZK8Kiz#}wS&82=$=#g}!D4%em?|HD~GpgM_C z_?jN-P48DPpp(2CA0tv@F?Pu+5+6*37zX`%r?=0YpgUi~75aH#^vjaLIh?={*(b?M zVSxNoF+WFsIp*idKOOT6C=j-SGxQuLh6Un~yxGb07o2)kogIO;t5OI@HCODi0iB@GG=5o==r?2Phrd`Iuek q+rNb#CW(O>oya^DTcCk%VUGUN``8-39YR51}YJ4xTBF!c+N-F;^O diff --git a/target/classes/org/realtors/rets/common/util/CaseInsensitiveComparator.class b/target/classes/org/realtors/rets/common/util/CaseInsensitiveComparator.class deleted file mode 100644 index cc0050b7cdb63b780adc1b2a4ec487095b1fbf05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 968 zcmbVKTWb?R6#izj$=Wo%Z7*6c)vC2ky(|?$Y(hW+LLjscSqeT*;;>HH%#_(lK_C1@ zzWAcxgZS)^63^_W+9deWmvi~f%y-UrW`6zt{sX`P9#v7sod8=^c(@zjUV!ZY_X9j& zs5GULw#87|tDi9VZT(I#EOn(4N26h1n3(rdLc*>d@brWm>GCn?+xIeKc-7S=iHzW> z)h46BX3; zKz(TT-M#K9Kj%@(RT3TdPsPACW|4Y_!P5s$>da|Zc}^yqD)+3BDxqdxM&-GlOcb{x z*Yj;NKAh!g%|ZoI?CI}f3Jpa`>Zm7Z?Wz3eR!_~UJv}l5@kY9b+4}ExpE(&dT*Dm0 z@;^z%%r!j34#UeUzT5<3u~LS$yvdZ53wTNf!|M2bV%@|5tzP$ep>o?nUyT5y~{gJl%3VUKF>+J?K7Gv6lA@u}+a=UBCve a=NtiUP~=~lC8VmG#lvQ9Z{k+&Z~p(NRJe9)lh6)WGKVV5rT*Zqxt3 z*0V^>&PAisZM2BEKF^w|R4(Np<~mn&*v$vhOxlb@_MWk)&5O_DSs{-H{=<7!J zkz8vASsZ;bkHNi6a@7}S(ulnExKbaDJ|148=HUY>44J0=t-X! zJ2R|If72vaPIG+{h723Cl1+(psjx$L(V@EuSYWh4g}h5qkGw_Rtq;NK2ftwbq{zlA zvWw(Fy(Q|dP`5`>ZQP9os+z~e5|(M=%3Q5FsjX6NjUo%LN8B1&!wqOQBk$FJ!~Q-* iX^0n7vOA(I&=!j$syFT}sD?Go7?xEq*70T(ZTtgdquWUU diff --git a/target/filtered-sources/java/org/realtors/rets/client/BrokerCodeRequredException.java b/target/filtered-sources/java/org/realtors/rets/client/BrokerCodeRequredException.java deleted file mode 100644 index 448b26c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/BrokerCodeRequredException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.client; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * dbt is lame and hasn't overridden the default - * javadoc string. - */ -public class BrokerCodeRequredException extends RetsException { - private final List mCodeList; - - public BrokerCodeRequredException(Collection codes) { - this.mCodeList = Collections.unmodifiableList(new ArrayList(codes)); - } - - public List getCodeList(){ - return this.mCodeList; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/CapabilityUrls.java b/target/filtered-sources/java/org/realtors/rets/client/CapabilityUrls.java deleted file mode 100644 index 083821c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/CapabilityUrls.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.realtors.rets.client; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class CapabilityUrls { - public static final String ACTION_URL = "Action"; - public static final String CHANGE_PASSWORD_URL = "ChangePassword"; - public static final String GET_OBJECT_URL = "GetObject"; - public static final String LOGIN_URL = "Login"; - public static final String LOGIN_COMPLETE_URL = "LoginComplete"; - public static final String LOGOUT_URL = "Logout"; - public static final String SEARCH_URL = "Search"; - public static final String GET_METADATA_URL = "GetMetadata"; - public static final String UPDATE_URL = "Update"; - public static final String SERVER_INFO_URL = "ServerInformation";// for rets 1.7 - private static final Log LOG = LogFactory.getLog(CapabilityUrls.class); - - private final Map mCapabilityUrls; - private URL mUrl; - - public CapabilityUrls() { - this(null); - } - - public CapabilityUrls(URL baseurl) { - this.mUrl = baseurl; - this.mCapabilityUrls = new HashMap(); - } - - public void setCapabilityUrl(String capability, String url) { - if (this.mUrl != null) { - try { - String newurl = new URL(this.mUrl, url).toString(); - if (!newurl.equals(url)) { - LOG.info("qualified " + capability + " URL different: " - + url + " -> " + newurl); - url = newurl; - } - - } catch (MalformedURLException e) { - LOG.warn("Couldn't normalize URL", e); - } - } - this.mCapabilityUrls.put(capability, url); - - } - - public String getCapabilityUrl(String capability) { - return (String) this.mCapabilityUrls.get(capability); - } - - public void setActionUrl(String url) { - setCapabilityUrl(ACTION_URL, url); - } - - public String getActionUrl() { - return getCapabilityUrl(ACTION_URL); - } - - public void setChangePasswordUrl(String url) { - setCapabilityUrl(CHANGE_PASSWORD_URL, url); - } - - public String getChangePasswordUrl() { - return getCapabilityUrl(CHANGE_PASSWORD_URL); - } - - public void setGetObjectUrl(String url) { - setCapabilityUrl(GET_OBJECT_URL, url); - } - - public String getGetObjectUrl() { - return getCapabilityUrl(GET_OBJECT_URL); - } - - public void setLoginUrl(String url) { - if (this.mUrl == null) { - try { - this.mUrl = new URL(url); - } catch (MalformedURLException e) { - LOG.debug("java.net.URL can't parse login url: " + url); - this.mUrl = null; - } - } - setCapabilityUrl(LOGIN_URL, url); - } - - public String getLoginUrl() { - return getCapabilityUrl(LOGIN_URL); - } - - public void setLoginCompleteUrl(String url) { - setCapabilityUrl(LOGIN_COMPLETE_URL, url); - } - - public String getLoginCompleteUrl() { - return getCapabilityUrl(LOGIN_COMPLETE_URL); - } - - public void setLogoutUrl(String url) { - setCapabilityUrl(LOGOUT_URL, url); - } - - public String getLogoutUrl() { - return getCapabilityUrl(LOGOUT_URL); - } - - public void setSearchUrl(String url) { - setCapabilityUrl(SEARCH_URL, url); - } - - public String getSearchUrl() { - return getCapabilityUrl(SEARCH_URL); - } - - public void setGetMetadataUrl(String url) { - setCapabilityUrl(GET_METADATA_URL, url); - } - - public String getGetMetadataUrl() { - return getCapabilityUrl(GET_METADATA_URL); - } - - public void setUpdateUrl(String url) { - setCapabilityUrl(UPDATE_URL, url); - } - - public String getUpdateUrl() { - return getCapabilityUrl(UPDATE_URL); - } - /** - * This is for RETS 1.7 and later and will return an empty string if it is not implemented. - * @param url - */ - public void setServerInfo(String url) { - setCapabilityUrl(SERVER_INFO_URL, url); - } - /** - * This is for RETS 1.7 and later and will return an empty string if it is not implemented. - * @return - */ - public String getServerInfo() { - return getCapabilityUrl(SERVER_INFO_URL); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordRequest.java b/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordRequest.java deleted file mode 100644 index 331192a..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordRequest.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.realtors.rets.client; - -import java.security.GeneralSecurityException; -import java.security.MessageDigest; -import javax.crypto.Cipher; -import javax.crypto.SecretKey; -import javax.crypto.SecretKeyFactory; -import javax.crypto.spec.DESKeySpec; - -import org.apache.commons.codec.binary.Base64; - -public class ChangePasswordRequest extends VersionInsensitiveRequest { - public ChangePasswordRequest(String username, String oldPassword, String newPassword) throws RetsException { - try { - MessageDigest md5 = MessageDigest.getInstance("MD5"); - md5.update(username.toUpperCase().getBytes()); - md5.update(oldPassword.toUpperCase().getBytes()); - byte[] digest = md5.digest(); - DESKeySpec keyspec = new DESKeySpec(digest); - SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(keyspec); - Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, key); - cipher.update(newPassword.getBytes()); - cipher.update(":".getBytes()); - cipher.update(username.getBytes()); - md5.reset(); - md5.update(cipher.doFinal()); - byte[] output = md5.digest(); - byte[] param = Base64.encodeBase64(output); - setQueryParameter("PWD", new String(param)); - } catch (GeneralSecurityException e) { - throw new RetsException(e); - } - } - - @Override - public void setUrl(CapabilityUrls urls) { - this.setUrl(urls.getChangePasswordUrl()); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordResponse.java b/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordResponse.java deleted file mode 100644 index 9981ba5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/ChangePasswordResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.realtors.rets.client; - -import java.io.InputStream; - -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.input.SAXBuilder; - -/** - * dbt is lame and hasn't overridden the default - * javadoc string. - */ -public class ChangePasswordResponse { - public ChangePasswordResponse(InputStream stream) throws RetsException { - SAXBuilder builder = new SAXBuilder(); - Document document = null; - try { - document = builder.build(stream); - } catch (Exception e) { - throw new RetsException(e); - } - Element rets = document.getRootElement(); - if (!rets.getName().equals("RETS")) { - throw new RetsException("Invalid Change Password Response"); - } - - int replyCode = Integer.parseInt(rets.getAttributeValue("ReplyCode")); - if (replyCode != 0) { - InvalidReplyCodeException exception; - exception = new InvalidReplyCodeException(replyCode); - exception.setRemoteMessage(rets.getAttributeValue("ReplyText")); - throw exception; - } - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/CollectionOfCollectionsIterator.java b/target/filtered-sources/java/org/realtors/rets/client/CollectionOfCollectionsIterator.java deleted file mode 100644 index cb7240b..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/CollectionOfCollectionsIterator.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.realtors.rets.client; - -import java.util.Collection; -import java.util.Iterator; -import java.util.NoSuchElementException; - -public class CollectionOfCollectionsIterator implements Iterator { - private Iterator mOuter; - private Iterator mInner; - - public CollectionOfCollectionsIterator(Collection c) { - this.mOuter = c.iterator(); - hasNext(); - } - - public boolean hasNext() { - if( this.mInner != null && this.mInner.hasNext() ) { - return true; - } - while( this.mOuter.hasNext() ){ - this.mInner = ((Collection) this.mOuter.next()).iterator(); - if( this.mInner.hasNext() ){ - return true; - } - } - return false; - } - - public Object next() { - if ( this.hasNext() ) - return this.mInner.next(); - - throw new NoSuchElementException(); - } - - public void remove() throws UnsupportedOperationException { - throw new UnsupportedOperationException(); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClient.java b/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClient.java deleted file mode 100644 index 097efb0..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClient.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.realtors.rets.client; - -import java.io.UnsupportedEncodingException; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.apache.commons.codec.digest.DigestUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.http.Header; -import org.apache.http.HttpResponse; -import org.apache.http.HttpStatus; -import org.apache.http.StatusLine; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpRequestBase; -import org.apache.http.client.params.ClientPNames; -import org.apache.http.client.params.CookiePolicy; -import org.apache.http.cookie.Cookie; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.HttpConnectionParams; -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -public class CommonsHttpClient extends RetsHttpClient { - private static final int DEFAULT_TIMEOUT = 300000; - private static final String RETS_VERSION = "RETS-Version"; - private static final String RETS_SESSION_ID = "RETS-Session-ID"; - private static final String RETS_REQUEST_ID = "RETS-Request-ID"; - private static final String USER_AGENT = "User-Agent"; - private static final String RETS_UA_AUTH_HEADER = "RETS-UA-Authorization"; - private static final String ACCEPT_ENCODING = "Accept-Encoding"; - public static final String CONTENT_ENCODING = "Content-Encoding"; - public static final String DEFLATE_ENCODINGS = "gzip,deflate"; - public static final String CONTENT_TYPE = "Content-Type"; - - public static BasicHttpParams defaultParams(int timeout) { - BasicHttpParams httpClientParams = new BasicHttpParams(); - // connection to server timeouts - HttpConnectionParams.setConnectionTimeout(httpClientParams, timeout); - HttpConnectionParams.setSoTimeout(httpClientParams, timeout); - // set to rfc 2109 as it puts the ASP (IIS) cookie _FIRST_, this is critical for interealty - httpClientParams.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109); - return httpClientParams; - } - public static ThreadSafeClientConnManager defaultConnectionManager(int maxConnectionsPerRoute, int maxConnectionsTotal) { - // allows for multi threaded requests from a single client - ThreadSafeClientConnManager connectionManager = new ThreadSafeClientConnManager(); - connectionManager.setDefaultMaxPerRoute(maxConnectionsPerRoute); - connectionManager.setMaxTotal(maxConnectionsTotal); - return connectionManager; - } - - private final ConcurrentHashMap defaultHeaders; - private final DefaultHttpClient httpClient; - - // method choice improvement - private final String userAgentPassword; - - public CommonsHttpClient() { - this(new DefaultHttpClient(defaultConnectionManager(Integer.MAX_VALUE, Integer.MAX_VALUE), defaultParams(DEFAULT_TIMEOUT)), null, true); - } - - public CommonsHttpClient(int timeout, String userAgentPassword, boolean gzip) { - this(new DefaultHttpClient(defaultConnectionManager(Integer.MAX_VALUE, Integer.MAX_VALUE), defaultParams(timeout)), userAgentPassword, gzip); - } - - public CommonsHttpClient(DefaultHttpClient client, String userAgentPassword, boolean gzip) { - this.defaultHeaders = new ConcurrentHashMap(); - this.userAgentPassword = userAgentPassword; - - this.httpClient = client; - // ask the server if we can use gzip - if( gzip ) this.addDefaultHeader(ACCEPT_ENCODING, DEFLATE_ENCODINGS); - } - - public DefaultHttpClient getHttpClient(){ - return this.httpClient; - } - - //----------------------method implementations - @Override - public void setUserCredentials(String userName, String password) { - UsernamePasswordCredentials creds = new UsernamePasswordCredentials(userName, password); - this.httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY, creds); - } - @Override - public RetsHttpResponse doRequest(String httpMethod, RetsHttpRequest request) throws RetsException { - return "GET".equals(StringUtils.upperCase(httpMethod)) ? this.doGet(request) : this.doPost(request); - } - - //----------------------method implementations - public RetsHttpResponse doGet(RetsHttpRequest request) throws RetsException { - String url = request.getUrl(); - String args = request.getHttpParameters(); - if (args != null) { - url = url + "?" + args; - } - HttpGet method = new HttpGet(url); - return execute(method, request.getHeaders()); - } - - public RetsHttpResponse doPost(RetsHttpRequest request) throws RetsException { - String url = request.getUrl(); - String body = request.getHttpParameters(); - if (body == null) body = ""; // commons-httpclient 3.0 refuses to accept null entity (body) - HttpPost method = new HttpPost(url); - try { - method.setEntity(new StringEntity(body, null, null)); - } catch (UnsupportedEncodingException e) { - throw new RetsException(e); - } - //updated Content-Type, application/x-www-url-encoded no longer supported - method.setHeader("Content-Type", "application/x-www-form-urlencoded"); - return execute(method, request.getHeaders()); - } - - protected RetsHttpResponse execute(final HttpRequestBase method, Map headers) throws RetsException { - try { - // add the default headers - if (this.defaultHeaders != null) { - for (Map.Entry entry : this.defaultHeaders.entrySet()) { - method.setHeader(entry.getKey(), entry.getValue()); - } - } - // add our request headers from rets - if (headers != null) { - for (Map.Entry entry : headers.entrySet()) { - method.setHeader(entry.getKey(), entry.getValue()); - } - } - // optional ua-auth stuff here - if( this.userAgentPassword != null ){ - method.setHeader(RETS_UA_AUTH_HEADER, calculateUaAuthHeader(method,getCookies())); - } - // try to execute the request - HttpResponse response = this.httpClient.execute(method); - StatusLine status = response.getStatusLine(); - if (status.getStatusCode() != HttpStatus.SC_OK) { - throw new InvalidHttpStatusException(status); - } - return new CommonsHttpClientResponse(response, getCookies()); - } catch (Exception e) { - throw new RetsException(e); - } - } - - @Override - public synchronized void addDefaultHeader(String key, String value) { - this.defaultHeaders.put(key, value); - if( value == null ) this.defaultHeaders.remove(key); - } - - protected Map getCookies() { - Map cookieMap = new CaseInsensitiveTreeMap(); - for (Cookie cookie : this.httpClient.getCookieStore().getCookies()) { - cookieMap.put(cookie.getName(), cookie.getValue()); - } - return cookieMap; - } - - protected String calculateUaAuthHeader(HttpRequestBase method, Map cookies ) { - final String userAgent = this.getHeaderValue(method, USER_AGENT); - final String requestId = this.getHeaderValue(method, RETS_REQUEST_ID); - final String sessionId = cookies.get(RETS_SESSION_ID); - final String retsVersion = this.getHeaderValue(method, RETS_VERSION); - String secretHash = DigestUtils.md5Hex(String.format("%s:%s",userAgent,this.userAgentPassword)); - String pieces = String.format("%s:%s:%s:%s",secretHash,StringUtils.trimToEmpty(requestId),StringUtils.trimToEmpty(sessionId),retsVersion); - return String.format("Digest %s", DigestUtils.md5Hex(pieces)); - } - - protected String getHeaderValue(HttpRequestBase method, String key){ - Header requestHeader = method.getFirstHeader(key); - if( requestHeader == null ) return null; - return requestHeader.getValue(); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClientResponse.java b/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClientResponse.java deleted file mode 100644 index 6c78149..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/CommonsHttpClientResponse.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.realtors.rets.client; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Map; -import java.util.zip.GZIPInputStream; - -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.http.Header; -import org.apache.http.HttpResponse; -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -import com.google.common.io.Closeables; - -public class CommonsHttpClientResponse implements RetsHttpResponse { - private HttpResponse response; - private Map headers; - private Map cookies; - - public CommonsHttpClientResponse(HttpResponse response, Map cookies) { - this.response = response; - this.cookies = new CaseInsensitiveTreeMap(cookies); - - this.headers = new CaseInsensitiveTreeMap(); - for (Header header : this.response.getAllHeaders()) { - this.headers.put(header.getName(), header.getValue()); - } - } - - public int getResponseCode() { - return this.response.getStatusLine().getStatusCode(); - } - - public Map getHeaders() { - return this.headers; - } - - public String getHeader(String header) { - return this.headers.get(header); - } - - - public Map getCookies() throws RetsException { - return this.cookies; - } - - - public String getCookie(String cookie) throws RetsException { - return this.cookies.get(cookie); - } - - - public String getCharset() { - String contentType = StringUtils.trimToEmpty(this.getHeader(CommonsHttpClient.CONTENT_TYPE)).toLowerCase(); - String[] split = StringUtils.split(contentType, ";"); - if (split == null) return null; - - for (String s : split) { - String sLower = s.toLowerCase().trim(); - boolean b = sLower.startsWith("charset="); - if (b){ - return StringUtils.substringAfter(s, "charset="); - } - } - return null; - } - - /** using this mess to provide logging, gzipping and httpmethod closing */ - - public InputStream getInputStream() throws RetsException { - try { - // get our underlying stream - InputStream inputStream = this.response.getEntity().getContent(); - // gzipped aware checks - String contentEncoding = StringUtils.trimToEmpty(this.getHeader(CommonsHttpClient.CONTENT_ENCODING)).toLowerCase(); - boolean gzipped = ArrayUtils.contains(CommonsHttpClient.DEFLATE_ENCODINGS.split(","),contentEncoding); - if( gzipped ) inputStream = new GZIPInputStream(inputStream); - - final InputStream in = inputStream; - // the http method close wrapper (necessary) - return new InputStream(){ - - public int read() throws IOException { - return in.read(); - } - - public int read(byte[] b) throws IOException { - return in.read(b); - } - - public int read(byte[] b, int off, int len) throws IOException { - return in.read(b, off, len); - } - - public void close() throws IOException { - // connection release _AFTER_ the input stream has been read - try { - Closeables.close(in, true); - } catch (IOException e) { - // ignore - } - } - }; - } catch (IOException e) { - throw new RetsException(e); - } - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/CompactRowPolicy.java b/target/filtered-sources/java/org/realtors/rets/client/CompactRowPolicy.java deleted file mode 100644 index 2877fb1..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/CompactRowPolicy.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.logging.LogFactory; - - -public interface CompactRowPolicy { - - /** fail fast and furiously */ - public static final CompactRowPolicy STRICT = new CompactRowPolicy(){ - - public boolean apply(int row, String[] columns, String[] values) { - if( values.length != columns.length ) - throw new IllegalArgumentException(String.format("Invalid number of result columns: got %s, expected %s",values.length, columns.length)); - return true; - }}; - - /** drop everything thats suspect */ - public static final CompactRowPolicy DROP = new CompactRowPolicy(){ - - public boolean apply(int row, String[] columns, String[] values) { - if (values.length != columns.length) { - LogFactory.getLog(CompactRowPolicy.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",row, values.length, columns.length)); - return false; - } - return true; - }}; - - /** fail fast on long rows */ - public static final CompactRowPolicy DEFAULT = new CompactRowPolicy(){ - - public boolean apply(int row, String[] columns, String[] values) { - if (values.length > columns.length) { - throw new IllegalArgumentException(String.format("Invalid number of result columns: got %s, expected %s",values.length, columns.length)); - } - if (values.length < columns.length) { - LogFactory.getLog(CompactRowPolicy.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",row, values.length, columns.length)); - } - return true; - }}; - - /** drop and log long rows, try to keep short rows */ - public static final CompactRowPolicy DROP_LONG = new CompactRowPolicy(){ - - public boolean apply(int row, String[] columns, String[] values) { - if (values.length > columns.length) { - LogFactory.getLog(CompactRowPolicy.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",row, values.length, columns.length)); - return false; - } - if (values.length < columns.length) { - LogFactory.getLog(CompactRowPolicy.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",row, values.length, columns.length)); - } - return true; - }}; - - public boolean apply(int row, String[] columns, String[] values); -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GenericHttpRequest.java b/target/filtered-sources/java/org/realtors/rets/client/GenericHttpRequest.java deleted file mode 100644 index 9f3ec4f..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GenericHttpRequest.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.realtors.rets.client; - -/** - * on the off chance you need an ad hoc request object... - */ -public class GenericHttpRequest extends VersionInsensitiveRequest { - - public GenericHttpRequest(){ - // noop - } - - public GenericHttpRequest(String url){ - this.mUrl = url; - } - - /** - * throws an exception. GenericHttpRequest can't have a - * CapabilityUrl - * @param urls the CapabilityUrls object that has nothing we can use - */ - @Override - public void setUrl(CapabilityUrls urls) { - // do nothing - return; - } - - /** - * expose the queryParameter interface to build query arguments. - * @param name the parameter name - * @param value the parameter value - */ - @Override - public void setQueryParameter(String name, String value) { - super.setQueryParameter(name, value); - } -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetMetadataRequest.java b/target/filtered-sources/java/org/realtors/rets/client/GetMetadataRequest.java deleted file mode 100644 index 92261dd..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetMetadataRequest.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.lang.StringUtils; - -public class GetMetadataRequest extends VersionInsensitiveRequest { - private static final int COMPACT_FORMAT = 0; - private static final int STANDARD_XML_FORMAT = 1; - public static final String KEY_TYPE = "Type"; - public static final String KEY_ID = "ID"; - public static final String KEY_FORMAT = "Format"; - public static final String FORMAT_STANDARD = "STANDARD-XML"; - public static final String FORMAT_STANDARD_PREFIX = "STANDARD-XML:"; - public static final String FORMAT_COMPACT = "COMPACT"; - - private int format; - private String standardXmlVersion; - - public GetMetadataRequest(String type, String id) throws RetsException { - this(type, new String[] { id }); - } - - public GetMetadataRequest(String type, String[] ids) throws RetsException { - assertValidIds(ids); - type = "METADATA-" + type; - if (type.equals("METADATA-SYSTEM") || type.equals("METADATA-RESOURCE")) { - assertIdZeroOrStar(ids); - } - - setQueryParameter(KEY_TYPE, type); - setQueryParameter(KEY_ID, StringUtils.join(ids, ":")); - setQueryParameter(KEY_FORMAT, FORMAT_STANDARD); - this.format = STANDARD_XML_FORMAT; - } - - @Override - public void setUrl(CapabilityUrls urls) { - setUrl(urls.getGetMetadataUrl()); - } - - private void assertValidIds(String[] ids) throws InvalidArgumentException { - if (ids.length == 0) { - throw new InvalidArgumentException("Expecting at least one ID"); - } - } - - private void assertIdZeroOrStar(String[] ids) throws InvalidArgumentException { - if (ids.length != 1) { - throw new InvalidArgumentException("Expecting 1 ID, but found, " + ids.length); - } - if (!ids[0].equals("0") && !ids[0].equals("*")) { - throw new InvalidArgumentException("Expecting ID of 0 or *, but was " + ids[0]); - } - } - - public void setCompactFormat() { - setQueryParameter(KEY_FORMAT, FORMAT_COMPACT); - this.format = COMPACT_FORMAT; - this.standardXmlVersion = null; - } - - public boolean isCompactFormat() { - return (this.format == COMPACT_FORMAT); - } - - public boolean isStandardXmlFormat() { - return (this.format == STANDARD_XML_FORMAT); - } - - public String getStandardXmlVersion() { - return this.standardXmlVersion; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetMetadataResponse.java b/target/filtered-sources/java/org/realtors/rets/client/GetMetadataResponse.java deleted file mode 100644 index 8876b6d..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetMetadataResponse.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.realtors.rets.client; - -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import org.apache.commons.lang.math.NumberUtils; - -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.Document; -import org.jdom.input.SAXBuilder; -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.JDomCompactBuilder; -import org.realtors.rets.common.metadata.MetadataException; -import org.realtors.rets.common.metadata.JDomStandardBuilder; - -public class GetMetadataResponse { - private MetaObject[] mMetadataObjs; - - public GetMetadataResponse(InputStream stream, boolean compact, boolean isStrict) throws RetsException { - try { - SAXBuilder builder = new SAXBuilder(); - Document document = builder.build(stream); - Element retsElement = document.getRootElement(); - if (!retsElement.getName().equals("RETS")) { - throw new RetsException("Expecting RETS"); - } - int replyCode = NumberUtils.toInt(retsElement.getAttributeValue("ReplyCode")); - if (ReplyCode.SUCCESS.equals(replyCode)) { - if (compact) { - handleCompactMetadata(document, isStrict); - } else { - handleStandardMetadata(document, isStrict); - } - } else if (ReplyCode.NO_METADATA_FOUND.equals(replyCode)) { - // No metadata is not an exceptional case - handleNoMetadataFound(retsElement); - } else { - InvalidReplyCodeException e = new InvalidReplyCodeException(replyCode); - e.setRemoteMessage(retsElement.getAttributeValue(retsElement.getAttributeValue("ReplyText"))); - throw e; - } - } catch (JDOMException e) { - throw new RetsException(e); - } catch (IOException e) { - throw new RetsException(e); - } - } - - private void handleNoMetadataFound(Element retsElement) throws RetsException { - List children = retsElement.getChildren(); - if (children.size() != 0) { - throw new RetsException("Expecting 0 children when results"); - } - this.mMetadataObjs = new MetaObject[0]; - } - - private void handleCompactMetadata(Document document, boolean isStrict) throws RetsException { - try { - JDomCompactBuilder builder = new JDomCompactBuilder(); - builder.setStrict(isStrict); - this.mMetadataObjs = builder.parse(document); - } catch (MetadataException e) { - throw new RetsException(e); - } - } - - private void handleStandardMetadata(Document document, boolean isStrict) throws RetsException { - try { - JDomStandardBuilder builder = new JDomStandardBuilder(); - builder.setStrict(isStrict); - this.mMetadataObjs = builder.parse(document); - } catch (MetadataException e) { - throw new RetsException(e); - } - } - - public MetaObject[] getMetadata() { - return this.mMetadataObjs; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetObjectIterator.java b/target/filtered-sources/java/org/realtors/rets/client/GetObjectIterator.java deleted file mode 100644 index 6ba02c1..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetObjectIterator.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.realtors.rets.client; - -import java.io.Closeable; -import java.util.Iterator; -/** - * Iterator for SingleResoponseObjects - * - * @param - */ -public interface GetObjectIterator extends Closeable, Iterator{ - // noop -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetObjectRequest.java b/target/filtered-sources/java/org/realtors/rets/client/GetObjectRequest.java deleted file mode 100644 index dbed37b..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetObjectRequest.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.realtors.rets.client; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.Map; - -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; - -public class GetObjectRequest extends VersionInsensitiveRequest { - public static final String KEY_RESOURCE = "Resource"; - public static final String KEY_TYPE = "Type"; - public static final String KEY_LOCATION = "Location"; - public static final String KEY_ID = "ID"; - - private final Map mMap; - - public GetObjectRequest(String resource, String type) { - this(resource, type, new String[] { "*/*" }); - } - - public GetObjectRequest(String resource, String type, String[] acceptMimeTypes) { - setQueryParameter(KEY_RESOURCE, resource); - setQueryParameter(KEY_TYPE, type); - this.mMap = new HashMap(); - setHeader("Accept", StringUtils.join(acceptMimeTypes, ", ")); - } - - @Override - public void setUrl(CapabilityUrls urls) { - setUrl(urls.getGetObjectUrl()); - } - - public void setLocationOnly(boolean flag) { - if (flag) { - setQueryParameter(KEY_LOCATION, "1"); - } else { - setQueryParameter(KEY_LOCATION, null); - } - } - - public void addObject(String resourceEntity, String id) { - if (id == null) - throw new NullPointerException("Object id should not be null. " - + "Cannot remove object already added to request."); - - Object cur = this.mMap.get(resourceEntity); - if (id.equals("*")) { - this.mMap.put(resourceEntity, id); - } else if (cur == null) { - this.mMap.put(resourceEntity, id); - } else if (cur instanceof String) { - if (ObjectUtils.equals(cur, "*")) { - return; - } - if (ObjectUtils.equals(cur, id)) { - return; - } - Set s = new HashSet(); - s.add(cur); - s.add(id); - this.mMap.put(resourceEntity, s); - } else if (cur instanceof Set) { - ((Set) cur).add(id); - } else { - /* NOTREACHED */ - throw new RuntimeException(resourceEntity + " has invalid value " + "of type " + cur.getClass().getName()); - } - setQueryParameter(KEY_ID, makeIdStr()); - } - - private String makeIdStr() { - StringBuffer id = new StringBuffer(); - Iterator iter = this.mMap.keySet().iterator(); - while (iter.hasNext()) { - String key = (String) iter.next(); - id.append(key); - Object cur = this.mMap.get(key); - if (cur instanceof String) { - id.append(":"); - id.append(cur); - } else if (cur instanceof Set) { - Iterator iter2 = ((Set) cur).iterator(); - while (iter2.hasNext()) { - String val = (String) iter2.next(); - id.append(":"); - id.append(val); - } - } else { - throw new RuntimeException(key + " has invalid value of " + "type " + cur.getClass().getName()); - } - if (iter.hasNext()) { - id.append(","); - } - } - return id.toString(); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponse.java b/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponse.java deleted file mode 100644 index 287fc56..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponse.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.realtors.rets.client; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Map; -import java.util.NoSuchElementException; - -import org.apache.commons.lang.math.NumberUtils; -import org.apache.http.HeaderElement; -import org.apache.http.NameValuePair; -import org.apache.http.message.BasicHeaderValueParser; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.input.SAXBuilder; -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -public class GetObjectResponse{ - private static final int DEFAULT_BUFFER_SIZE = 8192; - - private final static GetObjectIterator EMPTY_OBJECT_RESPONSE_ITERATOR = new GetObjectIterator() { - public boolean hasNext() { - return false; - } - public SingleObjectResponse next() { - throw new NoSuchElementException(); - } - public void close() { - /* no op */ - } - public void remove() { - /* no op */ - } - }; - private final Map headers; - private final InputStream inputStream; - private final boolean isMultipart; - /** Indicate whether the response was empty */ - private boolean emptyResponse; - /** Indicate whether this GetObjectResponse is exhausted, i.e. has no objects */ - private boolean exhausted; - - public GetObjectResponse(Map headers, InputStream in) throws RetsException { - this.emptyResponse = false; - this.exhausted = false; - this.headers = new CaseInsensitiveTreeMap(headers); - this.isMultipart = getType().contains("multipart"); - this.inputStream = in; - - boolean isXml = getType().equals("text/xml"); - boolean containsContentId = headers.containsKey(SingleObjectResponse.CONTENT_ID); - // non multipart request that returns text/xml and does NOT have a Context-ID header, must only be a non-zero response code - boolean nonMultiPart_xml_withoutContentId = !this.isMultipart && isXml && !containsContentId; - // multipart request that returns text/xml can only be a non-zero response code - boolean multiPart_xml = this.isMultipart && isXml; - - if ( multiPart_xml || nonMultiPart_xml_withoutContentId ) { - int replyCode = 0; - try { - // GetObjectResponse is empty, because we have a Rets ReplyCode - this.emptyResponse = true; - SAXBuilder builder = new SAXBuilder(); - Document mDocument = builder.build(in); - Element root = mDocument.getRootElement(); - if (root.getName().equals("RETS")) { - replyCode = NumberUtils.toInt(root.getAttributeValue("ReplyCode")); - - // success - if (ReplyCode.SUCCESS.equals(replyCode)) return; - - // no object found - that's fine - if (ReplyCode.NO_OBJECT_FOUND.equals(replyCode)) return; - - throw new InvalidReplyCodeException(replyCode); - } - // no other possibilities - throw new RetsException("Malformed response [multipart="+this.isMultipart+", content-type=text/xml]. " + - "Content id did not exist in response and response was not valid rets response."); - } catch (JDOMException e) { - throw new RetsException(e); - } catch (IOException e) { - throw new RetsException(e); - } - } - } - - public String getType() { - return (String) this.headers.get("Content-Type"); - } - - public String getBoundary() { - String contentTypeValue = getType(); - HeaderElement[] contentType = BasicHeaderValueParser.parseElements(contentTypeValue, new BasicHeaderValueParser()); - if (contentType.length != 1) - throw new IllegalArgumentException("Multipart response appears to have a bad Content-Type: header value: " - + contentTypeValue); - - NameValuePair boundaryNV = contentType[0].getParameterByName("boundary"); - if (boundaryNV == null) - return null; - return unescapeBoundary(boundaryNV.getValue()); - } - - private static String unescapeBoundary(String boundaryValue) { - if (boundaryValue.startsWith("\"")) - boundaryValue = boundaryValue.substring(1); - if (boundaryValue.endsWith("\"")) - boundaryValue = boundaryValue.substring(0, boundaryValue.length() - 1); - return boundaryValue; - } - - - /** - * @return GetObjectIterator, which iterates over SingleObjectResponse - * objects. - * - * @throws RetsException - */ - public GetObjectIterator iterator() throws RetsException { - return iterator(DEFAULT_BUFFER_SIZE); - } - - /** - * @return GetObjectIterator, which iterates over SingleObjectResponse - * objects. - * - * @param bufferSize How large a buffer should be used for underlying - * streams. - * - * @throws RetsException - */ - public GetObjectIterator iterator(int bufferSize) throws RetsException { - if(this.exhausted ) - throw new RetsException("response was exhausted - cannot request iterator a second time"); - - if( this.emptyResponse ) - return (GetObjectIterator) EMPTY_OBJECT_RESPONSE_ITERATOR; - - - if( this.isMultipart ){ - try { - return GetObjectResponseIterator.createIterator(this, bufferSize); - } catch (Exception e) { - throw new RetsException("Error creating multipart GetObjectIterator", e); - } - } - // no other possibilities - return new NonMultipartGetObjectResponseIterator(this.headers, this.inputStream); - } - - public InputStream getInputStream() { - return this.inputStream; - } - -} - - -/** Used to implement GetObjectIterator for a non multipart response. */ -final class NonMultipartGetObjectResponseIterator implements GetObjectIterator { - private boolean exhausted; - private final Map headers; - private final InputStream inputStream; - - public NonMultipartGetObjectResponseIterator(Map headers, InputStream in){ - this.exhausted = false; - this.headers = headers; - this.inputStream = in; - } - - - public void close() throws IOException { - this.inputStream.close(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - - public boolean hasNext() { - return !this.exhausted; - } - - public SingleObjectResponse next() { - if( this.exhausted ) - throw new NoSuchElementException("stream exhausted"); - - this.exhausted = true; - return new SingleObjectResponse(this.headers, this.inputStream); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponseIterator.java b/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponseIterator.java deleted file mode 100644 index 7ff246f..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/GetObjectResponseIterator.java +++ /dev/null @@ -1,140 +0,0 @@ -package org.realtors.rets.client; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.PushbackInputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.NoSuchElementException; - -import org.apache.commons.lang.StringUtils; - -public class GetObjectResponseIterator implements GetObjectIterator { - public static final char CR = '\r'; - public static final char LF = '\n'; - public static final String EOL = CR+""+LF; - public static final String BS = "--"; - - private final PushbackInputStream multipartStream; - private final String boundary; - private Boolean hasNext; - - public static GetObjectIterator createIterator(final GetObjectResponse response, int streamBufferSize) throws Exception { - String boundary = response.getBoundary(); - if (boundary != null) - return new GetObjectResponseIterator(response, boundary, streamBufferSize); - - return new GetObjectIterator() { - - public void close() throws IOException{ - response.getInputStream().close(); - } - - public boolean hasNext() { - return false; - } - - public T next() { - throw new NoSuchElementException(); - } - - public void remove() { - throw new UnsupportedOperationException(""); - } - }; - } - - private GetObjectResponseIterator(GetObjectResponse response, String boundary, int streamBufferSize) throws Exception { - this.boundary = boundary; - - BufferedInputStream input = new BufferedInputStream(response.getInputStream(), streamBufferSize); - this.multipartStream = new PushbackInputStream(input, BS.length() + this.boundary.length() + EOL.length()); - } - - - public boolean hasNext() { - if (this.hasNext != null) - return this.hasNext.booleanValue(); - - try { - this.hasNext = new Boolean(this.getHaveNext()); - return this.hasNext.booleanValue(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - - public T next() { - if (!this.hasNext()) - throw new NoSuchElementException(); - - this.hasNext = null; - try { - return getNext(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - - public void remove() { - throw new UnsupportedOperationException(); - } - - - public void close() throws IOException { - this.multipartStream.close(); - } - - private boolean getHaveNext() throws IOException { - String line = null; - while ((line = this.readLine()) != null) { - if (line.equals(BS+this.boundary)) - return true; - if (line.equals(BS+this.boundary+BS)) - return false; - } - return false; - } - - private T getNext() throws Exception { - Map headers = new HashMap(); - String header = null; - while (StringUtils.isNotEmpty(header = this.readLine())) { - int nvSeperatorIndex = header.indexOf(':'); - if (nvSeperatorIndex == -1){ - headers.put(header, ""); - } else { - String name = header.substring(0, nvSeperatorIndex); - String value = header.substring(nvSeperatorIndex + 1).trim(); - headers.put(name, value); - } - } - return (T)new SingleObjectResponse(headers, new SinglePartInputStream(this.multipartStream, BS+this.boundary)); - } - - // TODO find existing library to do this - private String readLine() throws IOException { - boolean eolReached = false; - StringBuffer line = new StringBuffer(); - int currentChar = -1; - while (!eolReached && (currentChar = this.multipartStream.read()) != -1) { - eolReached = (currentChar == CR || currentChar == LF); - if (!eolReached) - line.append((char) currentChar); - } - - if (currentChar == -1 && line.length() == 0) - return null; - - if (currentChar == CR) { - int nextChar = this.multipartStream.read(); - if (nextChar != LF) - this.multipartStream.unread(new byte[] { (byte) nextChar }); - } - - return line.toString(); - } - -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/InvalidArgumentException.java b/target/filtered-sources/java/org/realtors/rets/client/InvalidArgumentException.java deleted file mode 100644 index bf7a241..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/InvalidArgumentException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.realtors.rets.client; - -public class InvalidArgumentException extends RetsException { - public InvalidArgumentException(String message) { - super(message); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/InvalidHttpStatusException.java b/target/filtered-sources/java/org/realtors/rets/client/InvalidHttpStatusException.java deleted file mode 100644 index aa084a7..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/InvalidHttpStatusException.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.http.StatusLine; - -public class InvalidHttpStatusException extends RetsException { - public InvalidHttpStatusException(StatusLine status) { - super("Status code (" + status.getStatusCode() + ") " + status.getReasonPhrase()); - } - public InvalidHttpStatusException(StatusLine status, String message) { - super("Status code (" + status.getStatusCode() + ") " + status.getReasonPhrase() +" '"+message+"'"); - } -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeException.java b/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeException.java deleted file mode 100644 index 8011571..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeException.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.lang.SystemUtils; -/** - * Exception class for invalid reply codes from a Rets server - */ -public class InvalidReplyCodeException extends RetsException { - private final ReplyCode mReplyCode; - private String mMsg; - private String mReqinfo; - - public InvalidReplyCodeException(int replyCodeValue) { - this.mReplyCode = ReplyCode.fromValue(replyCodeValue); - } - - public InvalidReplyCodeException(ReplyCode replyCode) { - this.mReplyCode = replyCode; - } - - @Override - public String getMessage() { - StringBuffer sb = new StringBuffer(this.mReplyCode.toString()); - if (this.mMsg != null) { - sb.append(SystemUtils.LINE_SEPARATOR + this.mMsg); - } - if (this.mReqinfo != null) { - sb.append(SystemUtils.LINE_SEPARATOR + this.mReqinfo); - } - return sb.toString(); - } - - public int getReplyCodeValue() { - return this.mReplyCode.getValue(); - } - - public void setRemoteMessage(String msg) { - this.mMsg = msg; - } - - public void setRequestInfo(String reqinfo) { - this.mReqinfo = reqinfo; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeHandler.java b/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeHandler.java deleted file mode 100644 index 165eec5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/InvalidReplyCodeHandler.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.realtors.rets.client; - -public interface InvalidReplyCodeHandler { - InvalidReplyCodeHandler FAIL = new InvalidReplyCodeHandler() { - public void invalidRetsReplyCode(int replyCode) throws InvalidReplyCodeException { - throw new InvalidReplyCodeException(replyCode); - } - - public void invalidRetsStatusReplyCode(int replyCode) throws InvalidReplyCodeException { - throw new InvalidReplyCodeException(replyCode); - } - }; - - public void invalidRetsReplyCode(int replyCode) throws InvalidReplyCodeException; - - public void invalidRetsStatusReplyCode(int replyCode) throws InvalidReplyCodeException; -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/KeyValueResponse.java b/target/filtered-sources/java/org/realtors/rets/client/KeyValueResponse.java deleted file mode 100644 index 2c539b5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/KeyValueResponse.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.realtors.rets.client; - -import java.util.List; -import java.util.StringTokenizer; -import java.io.InputStream; -import java.io.IOException; - -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.Document; -import org.jdom.input.SAXBuilder; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -abstract public class KeyValueResponse { - protected static final String CRLF = "\r\n"; - private static final Log LOG = LogFactory.getLog(KeyValueResponse.class); - - protected Document mDoc; - protected int mReplyCode; - protected boolean mStrict; - - public KeyValueResponse() { - this.mStrict = false; - } - - public void parse(InputStream stream, RetsVersion mVersion) throws RetsException { - try { - SAXBuilder builder = new SAXBuilder(); - this.mDoc = builder.build(stream); - Element retsElement = this.mDoc.getRootElement(); - if (!retsElement.getName().equals("RETS")) { - throw new RetsException("Expecting RETS"); - } - - int replyCode = NumberUtils.toInt(retsElement.getAttributeValue("ReplyCode")); - this.mReplyCode = replyCode; - if (!isValidReplyCode(replyCode)) { - throw new InvalidReplyCodeException(replyCode); - } - Element capabilityContainer; - if (RetsVersion.RETS_10.equals(mVersion)) { - capabilityContainer = retsElement; - } else { - List children = retsElement.getChildren(); - if (children.size() != 1) { - throw new RetsException("Invalid number of children: " + children.size()); - } - - capabilityContainer = (Element) children.get(0); - - if (!capabilityContainer.getName().equals("RETS-RESPONSE")) { - throw new RetsException("Expecting RETS-RESPONSE"); - } - } - this.handleRetsResponse(capabilityContainer); - } catch (JDOMException e) { - throw new RetsException(e); - } catch (IOException e) { - throw new RetsException(e); - } - } - - protected boolean isValidReplyCode(int replyCode) { - return (ReplyCode.SUCCESS.equals(replyCode)); - - } - - private void handleRetsResponse(Element retsResponse) throws RetsException { - StringTokenizer tokenizer = new StringTokenizer(retsResponse.getText(), CRLF); - while (tokenizer.hasMoreTokens()) { - String line = tokenizer.nextToken(); - String splits[] = StringUtils.split(line, "="); - String key = splits[0].trim(); - // guard against a missing value in a KeyValueResponse - String value = splits.length > 1 ? splits[1].trim() : ""; - if (LOG.isDebugEnabled()) { - LOG.debug("<" + key + "> -> <" + value + ">"); - } - this.handleKeyValue(key, value); - } - } - - protected abstract void handleKeyValue(String key, String value) throws RetsException; - - public void setStrict(boolean strict) { - this.mStrict = strict; - } - - public boolean isStrict() { - return this.mStrict; - } - - protected boolean matchKey(String key, String value) { - if (this.mStrict) - return key.equals(value); - - return key.equalsIgnoreCase(value); - } - - protected void assertStrictWarning(Log log, String message) throws RetsException { - if (this.mStrict) - throw new RetsException(message); - - log.warn(message); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/LoginRequest.java b/target/filtered-sources/java/org/realtors/rets/client/LoginRequest.java deleted file mode 100644 index b301393..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/LoginRequest.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.realtors.rets.client; - -public class LoginRequest extends VersionInsensitiveRequest { - - @Override - public void setUrl(CapabilityUrls urls) { - setUrl(urls.getLoginUrl()); - } - - public void setBrokerCode(String code, String branch) { - if (code == null) { - setQueryParameter(KEY_BROKERCODE, null); - } else { - if (branch == null) { - setQueryParameter(KEY_BROKERCODE, code); - } else { - setQueryParameter(KEY_BROKERCODE, code + "," + branch); - } - } - } - - public static final String KEY_BROKERCODE = "BrokerCode"; -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/LoginResponse.java b/target/filtered-sources/java/org/realtors/rets/client/LoginResponse.java deleted file mode 100644 index ae746a7..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/LoginResponse.java +++ /dev/null @@ -1,197 +0,0 @@ -package org.realtors.rets.client; - -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashSet; -import java.util.Set; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class LoginResponse extends KeyValueResponse { - private static final String BROKER_KEY = "Broker"; - private static final String MEMBER_NAME_KEY = "MemberName"; - private static final String METADATA_VER_KEY = "MetadataVersion"; - private static final String MIN_METADATA_VER_KEY = "MinMetadataVersion"; - private static final String USER_INFO_KEY = "User"; - private static final String OFFICE_LIST_KEY = "OfficeList"; - private static final String BALANCE_KEY = "Balance"; - private static final String TIMEOUT_KEY = "TimeoutSeconds"; - private static final String PWD_EXPIRE_KEY = "Expr"; - private static final String METADATA_TIMESTAMP_KEY = "MetadataTimestamp"; - private static final String MIN_METADATA_TIMESTAMP_KEY = "MinMetadataTimestamp"; - private static final Log LOG = LogFactory.getLog(LoginResponse.class); - - private String sessionId; - private String memberName; - private String userInformation; - private String broker; - private String metadataVersion; - private String minMetadataVersion; - private String metadataTimestamp; - private String minMetadataTimestamp; - private String officeList; - private String balance; - private int sessionTimeout; - private String passwordExpiration; - private CapabilityUrls capabilityUrls; - private Set brokerCodes; - - public LoginResponse(String loginUrl) { - super(); - this.brokerCodes = new HashSet(); - URL url = null; - try { - url = new URL(loginUrl); - } catch (MalformedURLException e) { - LOG.warn("Bad URL: " + loginUrl); - } - this.capabilityUrls = new CapabilityUrls(url); - } - - public LoginResponse() { - super(); - this.capabilityUrls = new CapabilityUrls(); - } - - @Override - public void parse(InputStream stream, RetsVersion version) throws RetsException { - super.parse(stream, version); - if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { - throw new BrokerCodeRequredException(this.brokerCodes); - } - } - - @Override - protected boolean isValidReplyCode(int replyCode) { - return (super.isValidReplyCode(replyCode) || ReplyCode.BROKER_CODE_REQUIRED.equals(replyCode)); - } - - @Override - protected void handleKeyValue(String key, String value) throws RetsException { - if (ReplyCode.BROKER_CODE_REQUIRED.equals(this.mReplyCode)) { - if (matchKey(key, BROKER_KEY)) { - String[] strings = StringUtils.split(value, ","); - if (strings.length > 0 && strings.length < 3) { - this.brokerCodes.add(strings); - } else { - throw new RetsException("Invalid broker/branch code: " + value); - } - } - } - - if (matchKey(key, BROKER_KEY)) { - this.broker = value; - } else if (matchKey(key, MEMBER_NAME_KEY)) { - this.memberName = value; - } else if (matchKey(key, METADATA_VER_KEY)) { - this.metadataVersion = value; - } else if (matchKey(key, MIN_METADATA_VER_KEY)) { - this.minMetadataVersion = value; - } else if (matchKey(key, METADATA_TIMESTAMP_KEY)) { - this.metadataTimestamp = value; - } else if (matchKey(key, MIN_METADATA_TIMESTAMP_KEY)) { - this.minMetadataTimestamp = value; - } else if (matchKey(key, USER_INFO_KEY)) { - this.userInformation = value; - } else if (matchKey(key, OFFICE_LIST_KEY)) { - this.officeList = value; - } else if (matchKey(key, BALANCE_KEY)) { - this.balance = value; - } else if (matchKey(key, TIMEOUT_KEY)) { - this.sessionTimeout = NumberUtils.toInt(value); - } else if (matchKey(key, PWD_EXPIRE_KEY)) { - this.passwordExpiration = value; - } else if (matchKey(key, CapabilityUrls.ACTION_URL)) { - this.capabilityUrls.setActionUrl(value); - } else if (matchKey(key, CapabilityUrls.CHANGE_PASSWORD_URL)) { - this.capabilityUrls.setChangePasswordUrl(value); - } else if (matchKey(key, CapabilityUrls.GET_OBJECT_URL)) { - this.capabilityUrls.setGetObjectUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGIN_URL)) { - this.capabilityUrls.setLoginUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGIN_COMPLETE_URL)) { - this.capabilityUrls.setLoginCompleteUrl(value); - } else if (matchKey(key, CapabilityUrls.LOGOUT_URL)) { - this.capabilityUrls.setLogoutUrl(value); - } else if (matchKey(key, CapabilityUrls.SEARCH_URL)) { - this.capabilityUrls.setSearchUrl(value); - } else if (matchKey(key, CapabilityUrls.GET_METADATA_URL)) { - this.capabilityUrls.setGetMetadataUrl(value); - } else if (matchKey(key, CapabilityUrls.UPDATE_URL)) { - this.capabilityUrls.setUpdateUrl(value); - }else if (matchKey(key, CapabilityUrls.SERVER_INFO_URL)) { - this.capabilityUrls.setServerInfo(value); - LOG.warn("Depreciated: " + key + " -> " + value); - } else if (matchKey(key, "Get")) { - LOG.warn("Found bad key: Get -> " + value); - // FIX ME: Should not get this - } else { - if (key.substring(0, 2).equalsIgnoreCase("X-")) { - LOG.warn("Unknown experimental key: " + key + " -> " + value); - } else { - assertStrictWarning(LOG, "Invalid login response key: " + key + " -> " + value); - } - } - } - - public String getMemberName() { - return this.memberName; - } - - public String getUserInformation() { - return this.userInformation; - } - - public String getBroker() { - return this.broker; - } - - public String getMetadataVersion() { - return this.metadataVersion; - } - - public String getMinMetadataVersion() { - return this.minMetadataVersion; - } - - public String getMetadataTimestamp() { - return this.metadataTimestamp; - } - - public String getMinMetadataTimestamp() { - return this.minMetadataTimestamp; - } - - public String getOfficeList() { - return this.officeList; - } - - public String getBalance() { - return this.balance; - } - - public int getSessionTimeout() { - return this.sessionTimeout; - } - - public String getPasswordExpiration() { - return this.passwordExpiration; - } - - public CapabilityUrls getCapabilityUrls() { - return this.capabilityUrls; - } - - public String getSessionId() { - return this.sessionId; - } - - public void setSessionId(String sessionId) { - this.sessionId = sessionId; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/LogoutRequest.java b/target/filtered-sources/java/org/realtors/rets/client/LogoutRequest.java deleted file mode 100644 index a27afa3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/LogoutRequest.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.realtors.rets.client; - -public class LogoutRequest extends VersionInsensitiveRequest { - - @Override - public void setUrl(CapabilityUrls urls) { - setUrl(urls.getLogoutUrl()); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/LogoutResponse.java b/target/filtered-sources/java/org/realtors/rets/client/LogoutResponse.java deleted file mode 100644 index 8f31339..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/LogoutResponse.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class LogoutResponse extends KeyValueResponse { - private static final Log LOG = LogFactory.getLog(LogoutResponse.class); - private static final String CONNECT_TIME_KEY = "ConnectTime"; - private static final String BILLING_KEY = "Billing"; - private static final String SIGNOFF_KEY = "SignOffMessage"; - - private String seconds; - private String billingInfo; - private String logoutMessage; - - @Override - protected void handleKeyValue(String key, String value) throws RetsException { - if (matchKey(key, CONNECT_TIME_KEY)) { - this.seconds = value; - } else if (matchKey(key, BILLING_KEY)) { - this.billingInfo = value; - } else if (matchKey(key, SIGNOFF_KEY)) { - this.logoutMessage = value; - } else { - assertStrictWarning(LOG, "Invalid logout response key: " + key + " -> " + value); - } - } - - public String getSeconds() { - return this.seconds; - } - - public String getBillingInfo() { - return this.billingInfo; - } - - public String getLogoutMessage() { - return this.logoutMessage; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorAdapter.java b/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorAdapter.java deleted file mode 100644 index d959dca..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorAdapter.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.realtors.rets.common.metadata.MetaCollector; -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public abstract class MetaCollectorAdapter implements MetaCollector { - - - public MetaObject[] getMetadata(MetadataType type, String path) { - return getSome(type, path, "0"); - } - - - public MetaObject[] getMetadataRecursive(MetadataType type, String path) { - return getSome(type, path, "*"); - } - - private MetaObject[] getSome(MetadataType type, String path, String sfx) { - boolean compact = Boolean.getBoolean("rets-client.metadata.compact"); - try { - GetMetadataRequest req; - if (path == null || path.equals("")) { - req = new GetMetadataRequest(type.name(), sfx); - } else { - String[] ppath = StringUtils.split(path, ":"); - String[] id = new String[ppath.length + 1]; - System.arraycopy(ppath, 0, id, 0, ppath.length); - id[ppath.length] = sfx; - req = new GetMetadataRequest(type.name(), id); - } - if (compact) { - req.setCompactFormat(); - } - GetMetadataResponse response; - - response = doRequest(req); - - return response.getMetadata(); - } catch (RetsException e) { - LOG.error("bad metadata request", e); - return null; - } - } - - /** - * Perform operation of turning a GetMetadataRequest into - * a GetMetadataResponse - * - * @param req Requested metadata - * @return parsed MetaObjects - * - * @throws RetsException if an error occurs - */ - protected abstract GetMetadataResponse doRequest(GetMetadataRequest req) throws RetsException; - - private static final Log LOG = LogFactory.getLog(MetaCollectorAdapter.class); -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorImpl.java b/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorImpl.java deleted file mode 100644 index d7465bf..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/MetaCollectorImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.client; - -public class MetaCollectorImpl extends MetaCollectorAdapter { - private final RetsTransport mTransport; - - public MetaCollectorImpl(RetsTransport transport) { - this.mTransport = transport; - } - - @Override - protected GetMetadataResponse doRequest(GetMetadataRequest req) throws RetsException { - return this.mTransport.getMetadata(req); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/NetworkEventMonitor.java b/target/filtered-sources/java/org/realtors/rets/client/NetworkEventMonitor.java deleted file mode 100644 index 3936c5c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/NetworkEventMonitor.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.realtors.rets.client; - -/** - * A client can register a monitor for network events - */ -public interface NetworkEventMonitor -{ - /** - * inform the client app that an event has started. - * the client app can return an object, which will be passed - * to eventFinish(). - * - * @param message a message describing the event - * @return an object to be passed to eventFinish, or null - */ - public Object eventStart(String message); - /** - * Inform the client app that the previous event has completed - * - * @param o the object returned from eventStart - */ - public void eventFinish(Object o); -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/NullNetworkEventMonitor.java b/target/filtered-sources/java/org/realtors/rets/client/NullNetworkEventMonitor.java deleted file mode 100644 index 2e2ac4d..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/NullNetworkEventMonitor.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.realtors.rets.client; - -public class NullNetworkEventMonitor implements NetworkEventMonitor { - - public Object eventStart(String message) { - return null; - } - - - public void eventFinish(Object o) { - //noop - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/ReplyCode.java b/target/filtered-sources/java/org/realtors/rets/client/ReplyCode.java deleted file mode 100644 index 650bbec..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/ReplyCode.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.realtors.rets.client; - -import java.util.Map; -import java.util.HashMap; - -public class ReplyCode { - // static initialization loop.... this declaration _MUST_ come before the members - private static final Map CODES = new HashMap(); - - public static final ReplyCode SUCCESS = new ReplyCode(0, "Success"); - public static final ReplyCode ZERO_BALANCE = new ReplyCode(20003, "Zero balance"); - public static final ReplyCode BROKER_CODE_REQUIRED = new ReplyCode(20012, "Broker code required"); - public static final ReplyCode BROKER_CODE_INVALID = new ReplyCode(20013, "Broker Code Invalid"); - public static final ReplyCode ADDTIONAL_LOGIN_NOT_PREMITTED = new ReplyCode(20022, "Additional login not permitted"); - public static final ReplyCode MISCELLANEOUS_LOGIN_ERROR = new ReplyCode(20036, "Miscellaneous server login error"); - public static final ReplyCode CLIENT_PASSWORD_INVALID = new ReplyCode(20037, "Client passsword invalid"); - public static final ReplyCode SERVER_TEMPORARILY_DISABLED = new ReplyCode(20050, "Server temporarily disabled"); - public static final ReplyCode UNKNOWN_QUERY_FIELD = new ReplyCode(20200, "Unknown Query Field"); - public static final ReplyCode NO_RECORDS_FOUND = new ReplyCode(20201, "No Records Found"); - public static final ReplyCode INVALID_SELECT = new ReplyCode(20202, "Invalid select"); - public static final ReplyCode MISCELLANOUS_SEARCH_ERROR = new ReplyCode(20203, "Miscellaneous search error"); - public static final ReplyCode INVALID_QUERY_SYNTAX = new ReplyCode(20206, "Invalid query syntax"); - public static final ReplyCode UNAUTHORIZED_QUERY = new ReplyCode(20207, "Unauthorized query"); - public static final ReplyCode MAXIMUM_RECORDS_EXCEEDED = new ReplyCode(20208, "Maximum records exceeded"); - public static final ReplyCode SEARCH_TIMED_OUT = new ReplyCode(20209, "Search timed out"); - public static final ReplyCode TOO_MANY_OUTSTANDING_QUERIES = new ReplyCode(20210, "Too many outstanding queries"); - public static final ReplyCode INVALID_RESOURCE_GETOBJECT = new ReplyCode(20400, "Invalid Resource"); - public static final ReplyCode INVALID_TYPE_GETOBJECT = new ReplyCode(20401, "Invalid Type"); - public static final ReplyCode INVALID_IDENTIFIER_GETOBJECT = new ReplyCode(20402, "Invalid Identifier"); - public static final ReplyCode NO_OBJECT_FOUND = new ReplyCode(20403, "No Object Found"); - public static final ReplyCode UNSUPPORTED_MIME_TYPE_GETOBJECT = new ReplyCode(20406, "Unsupported MIME Type"); - public static final ReplyCode UNAUTHORIZED_RETRIEVAL_GETOBJECT = new ReplyCode(20407, "Unauthorized Retrieval"); - public static final ReplyCode RESOURCE_UNAVAILABLE_GETOBJECT = new ReplyCode(20408, "Resource Unavailable"); - public static final ReplyCode OBJECT_UNAVAILABLE = new ReplyCode(20409, "Object Unavailable"); - public static final ReplyCode REQUEST_TOO_LARGE_GETOBJECT = new ReplyCode(20410, "Request Too Large"); - public static final ReplyCode TIMEOUT_GETOBJECT = new ReplyCode(20411, "Timeout"); - public static final ReplyCode TOO_MANY_OUTSTANDING_QUERIES_GETOBJECT = new ReplyCode(20412,"Too Many Outstanding Queries"); - public static final ReplyCode MISCELLANEOUS_ERROR_GETOBJECT = new ReplyCode(20413, "Miscellaneous Error"); - public static final ReplyCode INVALID_RESOURCE = new ReplyCode(20500, "Invalid resource"); - public static final ReplyCode INVALID_TYPE = new ReplyCode(20501, "Invalid type"); - public static final ReplyCode INVALID_IDENTIFIER = new ReplyCode(20502, "Invalid identifier"); - public static final ReplyCode NO_METADATA_FOUND = new ReplyCode(20503, "No metadata found"); - public static final ReplyCode UNSUPPORTED_MIME_TYPE = new ReplyCode(20506, "Unsupported MIME type"); - public static final ReplyCode UNAUTHORIZED_RETRIEVAL = new ReplyCode(20507, "Unauthorized retrieval"); - public static final ReplyCode RESOURCE_UNAVAILABLE = new ReplyCode(20508, "Resource unavailable"); - public static final ReplyCode METADATA_UNAVAILABLE = new ReplyCode(20509, "Metadata unavailable"); - public static final ReplyCode REQUEST_TOO_LARGE = new ReplyCode(20510, "Request too large"); - public static final ReplyCode TIMEOUT = new ReplyCode(20511, "Timeout"); - public static final ReplyCode TOO_MANY_OUSTANDING_REQUESTS = new ReplyCode(20512, "Too many outstanding requests"); - public static final ReplyCode MISCELLANEOUS_ERROR = new ReplyCode(20513, "Miscellanous error"); - public static final ReplyCode REQUESTED_DTD_UNAVAILABLE = new ReplyCode(20514, "Requested DTD unvailable"); - - private final int mValue; - private final String mMessage; - - private ReplyCode(int value, String message) { - this.mValue = value; - this.mMessage = message; - if (CODES.containsValue(new Integer(value))) - throw new IllegalArgumentException(String.format("value already used: %s ( %s ) ",value,message)); - CODES.put(new Integer(value), this); - } - - - @Override - public boolean equals(Object o) { - if (!(o instanceof ReplyCode)) { - return false; - } - - ReplyCode rhs = (ReplyCode) o; - return (this.mValue == rhs.mValue); - } - - public boolean equals(int value) { - return this.mValue == value; - } - - @Override - public String toString() { - return String.format("%s (%s)",this.mValue,this.mMessage); - } - - public int getValue() { - return this.mValue; - } - - public String getMessage() { - return this.mMessage; - } - - public static ReplyCode fromValue(int value) { - ReplyCode replyCode = CODES.get(new Integer(value)); - if (replyCode != null) - return replyCode; - - return new ReplyCode(value, "Unknown"); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/ReplyCodeHandler.java b/target/filtered-sources/java/org/realtors/rets/client/ReplyCodeHandler.java deleted file mode 100644 index 8b2b0b5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/ReplyCodeHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.realtors.rets.client; - -/** - * @author jrayburn - */ -public interface ReplyCodeHandler { - - /** - * ReplyCodeHandler can choose to handle reply codes - * that are non-zero reply codes in its own fashion. - * - * This is intended to be used to allow the SearchResultCollector - * to choose to throw InvalidReplyCodeException if the response is - * 20201 (Empty) or 20208 (MaxRowsExceeded). - * - * @param replyCode The RETS reply code - * - * @throws InvalidReplyCodeException Thrown if reply code is - * invalid for the SearchResultCollector. - */ - public void handleReplyCode(int replyCode) throws InvalidReplyCodeException; - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsException.java b/target/filtered-sources/java/org/realtors/rets/client/RetsException.java deleted file mode 100644 index e5e2369..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsException.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.realtors.rets.client; - -import org.apache.commons.lang.exception.NestableException; - -public class RetsException extends NestableException { - public RetsException() { - super(); - } - - public RetsException(String message) { - super(message); - } - - public RetsException(String message, Throwable cause) { - super(message, cause); - } - - public RetsException(Throwable cause) { - super(cause); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpClient.java b/target/filtered-sources/java/org/realtors/rets/client/RetsHttpClient.java deleted file mode 100644 index 97f7425..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpClient.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.realtors.rets.client; - - -public abstract class RetsHttpClient { - - public static final String SESSION_ID_COOKIE = "RETS-Session-ID"; - public static final String LOGIN_SESSION_ID = "0"; - - public abstract void setUserCredentials(String userName, String password); - - /** - * The protocol specific implementation happens here. - */ - public abstract RetsHttpResponse doRequest(String httpMethod, RetsHttpRequest request) throws RetsException; - - /** - * Add an HTTP header that should be included by default in all requests - * - * @param name - * header name, case should be preserved - * @param value - * static header value, if null then implementation - * should not include the header in requests - */ - public abstract void addDefaultHeader(String name, String value); - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpRequest.java b/target/filtered-sources/java/org/realtors/rets/client/RetsHttpRequest.java deleted file mode 100644 index 04ed651..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpRequest.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.realtors.rets.client; - -import java.io.Serializable; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -/** Base Http Request object */ -public abstract class RetsHttpRequest implements Serializable { - private final Map mHeaders; - private final SortedMap mQueryParameters; - protected String mUrl; - - public RetsHttpRequest() { - this.mHeaders = new CaseInsensitiveTreeMap(); - this.mQueryParameters = new TreeMap(); - } - - public abstract void setUrl(CapabilityUrls urls); - - public void setUrl(String url) { - this.mUrl = url; - } - - public String getUrl() { - return this.mUrl; - } - - public void setHeader(String key, String value) { - this.mHeaders.put(key, value); - } - - public Map getHeaders() { - return this.mHeaders; - } - - public String getHttpParameters() { - if (this.mQueryParameters.isEmpty()) - return null; - - List params = new LinkedList(); - for(Map.Entry param : this.mQueryParameters.entrySet()){ - params.add(String.format("%s=%s",RetsUtil.urlEncode(param.getKey()),RetsUtil.urlEncode(param.getValue()))); - } - return StringUtils.join(params.iterator(),"&"); - } - - protected void setQueryParameter(String name, String value) { - if (value == null) { - this.mQueryParameters.remove(name); - } else { - this.mQueryParameters.put(name, value); - } - } - - @Override - public String toString() { - ToStringBuilder builder = new ToStringBuilder(this); - Iterator iterator = this.mQueryParameters.keySet().iterator(); - while (iterator.hasNext()) { - String s = (String) iterator.next(); - builder.append(s, this.mQueryParameters.get(s)); - } - return builder.toString(); - } - - /** - * any request with version-specific handling should deal with this. - * - * @param version - */ - public abstract void setVersion(RetsVersion version); - -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpResponse.java b/target/filtered-sources/java/org/realtors/rets/client/RetsHttpResponse.java deleted file mode 100644 index bf93cf8..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsHttpResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.realtors.rets.client; - -import java.util.Map; -import java.io.InputStream; - -/** - * Interface for retrieving useful header fields from a RETS HTTP response - * - * - */ - -public interface RetsHttpResponse { - public int getResponseCode() throws RetsException; - - public Map getHeaders() throws RetsException; - - public String getHeader(String hdr) throws RetsException; - - public String getCookie(String cookie) throws RetsException; - - public String getCharset() throws RetsException; - - public InputStream getInputStream() throws RetsException; - - public Map getCookies() throws RetsException; - -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsSession.java b/target/filtered-sources/java/org/realtors/rets/client/RetsSession.java deleted file mode 100644 index 202b891..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsSession.java +++ /dev/null @@ -1,403 +0,0 @@ -package org.realtors.rets.client; - -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.realtors.rets.common.metadata.Metadata; -import org.realtors.rets.common.metadata.MetadataException; - -/** - * RetsSession is the core class of the rets.client package. - */ -public class RetsSession { - public static final String METADATA_TABLES = "metadata_tables.xml"; - public static final String RETS_CLIENT_VERSION = "1.5";//change default version - - private static final Log LOG = LogFactory.getLog(RetsSession.class); - private static String sUserAgent = "crt-rets-client/" + RETS_CLIENT_VERSION; - - private CapabilityUrls capabilityUrls; - private RetsHttpClient httpClient; - private RetsTransport transport; - private String sessionId; - - - /** - * Creates a new RetsSession instance. - * You must call login(user, pass) before attempting any other - * transactions. - * - * Uses a default implementation of RetsHttpClient based on - * apache commons http client. - * - * Uses the RetsVersion.RETS_DEFAULT as the RetsVersion for - * this session. - * - * Uses sAgent at the User-Agent setting for this RetsSession. - * - * @param loginUrl URL of the Login transaction. - */ - public RetsSession(String loginUrl) { - this(loginUrl, new CommonsHttpClient()); - } - - /** - * Creates a new RetsSession instance. - * You must call login(user, pass) before attempting any other - * transactions. - * - * Uses the RetsVersion.RETS_DEFAULT as the RetsVersion for - * this session. - * - * Uses sAgent at the User-Agent setting for this RetsSession. - * - * @param loginUrl URL of the Login transaction - * @param httpClient a RetsHttpClient implementation. The default - * is CommonsHttpClient. - */ - public RetsSession(String loginUrl, RetsHttpClient httpClient) { - this(loginUrl, httpClient, RetsVersion.DEFAULT); - } - - /** - * Creates a new RetsSession instance. - * You must call login(user, pass) before attempting any other - * transactions. - * - * Uses sAgent at the User-Agent setting for this RetsSession. - * - * @param loginUrl URL of the Login transaction - * @param httpClient a RetsHttpClient implementation. The default - * is CommonsHttpClient. - * @param retsVersion The RetsVersion used by this RetsSession. - */ - public RetsSession(String loginUrl, RetsHttpClient httpClient, RetsVersion retsVersion) { - this(loginUrl, httpClient, retsVersion, sUserAgent,false); - } - - /** - * Creates a new RetsSession instance. - * You must call login(user, pass) before attempting any other - * transactions. - * - * @param loginUrl URL of the Login transaction - * @param httpClient a RetsHttpClient implementation. The default - * is CommonsHttpClient. - * @param retsVersion The RetsVersion used by this RetsSession. - * @param userAgent specific User-Agent to use for this session. - */ - public RetsSession(String loginUrl, RetsHttpClient httpClient, RetsVersion retsVersion, String userAgent, boolean strict) { - this.capabilityUrls = new CapabilityUrls(); - this.capabilityUrls.setLoginUrl(loginUrl); - - this.httpClient = httpClient; - this.transport = new RetsTransport(httpClient, this.capabilityUrls, retsVersion, strict); - this.httpClient.addDefaultHeader("User-Agent", userAgent); - } - - /** - * Query the current RetsVersion being used in this session. - * - * Initially, this will be the value passed to the RetsTransport. - * However, if during auto-negotiation the RetsTransport changes - * the RetsSession, this value may change throughout the session. - * - * @return the current RetsVersion value being used by the - * RetsTransport. - */ - public RetsVersion getRetsVersion() { - return this.transport.getRetsVersion(); - } - - /** - * Get the current RETS Session ID - * - * @return the current RETS Session ID or null is the server has - * not specified one - */ - public String getSessionId() { - return this.sessionId; - } - - public void setSessionId(String sessionId) { - LOG.debug("setting Session-ID to: " + sessionId); - this.sessionId = sessionId; - } - - public void setMonitor(NetworkEventMonitor monitor) { - this.transport.setMonitor(monitor); - } - - public void setStrict(boolean strict) { - this.transport.setStrict(strict); - } - public boolean isStrict() { - return this.transport.isStrict(); - } - - /** - * Sets the default User-Agent value for RetsSessions created without - * a specified User-Agent value. - * - * @param userAgent Default User-Agent value to use for all RetsSession - * objects created in the future. - */ - public static void setUserAgent(String userAgent) { - sUserAgent = userAgent; - } - - public String getLoginUrl() { - return this.capabilityUrls.getLoginUrl(); - } - - public Metadata getIncrementalMetadata() throws RetsException { - try { - return new Metadata(new MetaCollectorImpl(this.transport)); - } catch (MetadataException e) { - throw new RetsException(e); - } - } - - /** - * Get the complete RETS metadata. - * - * @return The RETS metadata object for these credentials. - * - * @throws RetsException - */ - public Metadata getMetadata() throws RetsException { - return this.transport.getMetadata("null"); - } - /** - * Ability to download the raw metadata to a location - * @param location - * @return - * @throws RetsException - */ - public Metadata getMetadata(String location) throws RetsException { - return this.transport.getMetadata(location); - } - - /** - * Perform a low level GetMetadatRequest. To retrieve - * structured metadata, - * - * @see #getMetadata() - * - * @param req GetMetadataRequest - * @return GetMetadataResponse, containing all MetaObjects - * returned - * - * @throws RetsException if an error occurs - */ - public GetMetadataResponse getMetadata(GetMetadataRequest req) throws RetsException { - return this.transport.getMetadata(req); - } - - /** - * Fetches the action (MOTD) from the server. - * - * @exception RetsException if an error occurs - */ - private void getAction() throws RetsException { - String actionUrl = this.capabilityUrls.getActionUrl(); - if (actionUrl == null) { - LOG.warn("No Action-URL available, skipping"); - return; - } - GenericHttpRequest actionRequest = new GenericHttpRequest(actionUrl){ - @Override - public Map getHeaders() { - return null; - } - }; - RetsHttpResponse httpResponse = this.httpClient.doRequest("GET", actionRequest); - try { - httpResponse.getInputStream().close(); - } catch (Exception e) { - LOG.error("Action URL weirdness", e); - } - } - - /** - * Implementation that allow for single or multi-part - * GetObject requests. - * - * @param req - * @return - * @exception RetsException if an error occurs - */ - public GetObjectResponse getObject(GetObjectRequest req) throws RetsException { - return this.transport.getObject(req); - } - - /** - * - * @param resource - * @param type - * @param entity - * @param id - * @return response - * @exception RetsException if an error occurs - */ - public GetObjectResponse getObject(String resource, String type, String entity, String id) throws RetsException { - GetObjectRequest req = new GetObjectRequest(resource, type); - req.addObject(entity, id); - return getObject(req); - } - - /** - * Log into the RETS server (see RETS 1.5, section 4). No other - * transactions will work until you have logged in. - * - * @param userName Username to authenticate - * @param password Password to authenticate with - * @return LoginResponse if success. - * @exception RetsException if authentication was denied - */ - public LoginResponse login(String userName, String password) throws RetsException { - return login(userName, password, null, null); - } - - /** - * Log into the RETS server (see RETS 1.5, section 4). No other - * transactions will work until you have logged in. - * - * @param userName username to authenticate - * @param password password to authenticate with - * @param brokerCode broker code if the same user belongs to multiple - * brokerages. May be null. - * @param brokerBranch branch code if the same user belongs to multiple - * branches. May be null. brokerCode is required if you want - * brokerBranch to work. - * @return LoginResponse if success. - * @exception RetsException if authentication was denied - */ - - public LoginResponse login(String userName, String password, String brokerCode, String brokerBranch) throws RetsException { - this.httpClient.setUserCredentials(userName, password); - - LoginRequest request = new LoginRequest(); - request.setBrokerCode(brokerCode, brokerBranch); - - LoginResponse response = this.transport.login(request); - this.capabilityUrls = response.getCapabilityUrls(); - this.transport.setCapabilities(this.capabilityUrls); - this.setSessionId(response.getSessionId()); - this.getAction(); - - return response; - } - - /** - * Log out of the current session. Another login _may_ re-establish a new connection - * depending the the behavior of the {#link RetsHttpClient} and its' ability to - * maintain and restablish a connection. - * - * @return a LogoutResponse - * @throws RetsException if the logout transaction failed - */ - public LogoutResponse logout() throws RetsException { - try { - return this.transport.logout(); - } finally { - this.setSessionId(null); - } - } - - /** - * Will perform a search as requested and return a filled - * SearchResult object. This method caches all result information - * in memory in the SearchResult object. - * - * @param req Contains parameters on which to search. - * @return a completed SearchResult - * @exception RetsException if an error occurs - */ - public SearchResult search(SearchRequest req) throws RetsException { - SearchResultImpl res = new SearchResultImpl(); - search(req, res); - return res; - } - - /** - * Execute a RETS Search. The collector object will be filled - * when this method is returned. See RETS 1.52d, Section 5. - * - * @param req Contains parameters on which to search. - * @param collector SearchResult object which will be informed of the results - * as they come in. If you don't need live results, see the other - * search invocation. - * @exception RetsException if an error occurs - */ - public void search(SearchRequest req, SearchResultCollector collector) throws RetsException { - this.transport.search(req, collector); - } - - /** - * Search and process the Search using a given SearchResultProcessor. - * - * @param req the search request - * @param processor the result object that will process the data - */ - public SearchResultSet search(SearchRequest req, SearchResultProcessor processor) throws RetsException { - return this.transport.search(req, processor); - } - - /** - * The lowest level integration. This method is not recommened for general use. - */ - public RetsHttpResponse request(RetsHttpRequest request) throws RetsException{ - return this.transport.doRequest(request); - } - - /** - * switch to a specific HttpMethodName, POST/GET, where the - * method is supported. Where GET is not supported, POST - * will be used. - * @param method the HttpMethodName to use - */ - public void setMethod(String method) { - this.transport.setMethod(method); - } - - /** Make sure GC'd sessions are logged out. */ - @Override - protected void finalize() throws Throwable { - try { - if( this.sessionId != null ) this.logout(); - } finally { - super.finalize(); - } - } - /** - * Performs a search returning only the number of records resulting from a query. - * - * Convenience method to get number records from a query - * - * @param req the search request - * @return the number of records that returned from the search request - * @throws RetsException - */ - public int getQueryCount(SearchRequest req) throws RetsException { - req.setCountOnly(); - SearchResult res = this.search(req); - return res.getCount(); - } - - /** - * Gives the URL's of an Object request instead of object themselves - * - * Convenience method to get the URL's of the requeseted object only - * - * @param req - * @return - * @throws RetsException - */ - public GetObjectResponse getObjectUrl(GetObjectRequest req) throws RetsException { - req.setLocationOnly(true); - GetObjectResponse res = this.getObject(req); - return res; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsTransport.java b/target/filtered-sources/java/org/realtors/rets/client/RetsTransport.java deleted file mode 100644 index aea8bf9..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsTransport.java +++ /dev/null @@ -1,330 +0,0 @@ -package org.realtors.rets.client; - - -import java.io.FileWriter; -import java.util.HashMap; -import java.util.Map; -import org.jdom.Document; -import org.jdom.input.SAXBuilder; -import org.jdom.output.XMLOutputter; -import org.realtors.rets.common.metadata.JDomCompactBuilder; -import org.realtors.rets.common.metadata.JDomStandardBuilder; -import org.realtors.rets.common.metadata.Metadata; -import org.realtors.rets.common.metadata.MetadataBuilder; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - - -/** - * Implements the basic transport mechanism. This class deals with the - * very basic parts of sending the request, returning a response object, - * and version negotiation. - * - */ -public class RetsTransport { - private static final String RETS_SESSION_ID_HEADER = "RETS-Session-ID"; // TODO spec says hyphen, Marketlinx uses an underscore - - private RetsHttpClient client; - private CapabilityUrls capabilities; - private String method = "GET"; - private RetsVersion version; - private boolean strict; - private NetworkEventMonitor monitor; - - private static final Log LOG = LogFactory.getLog(RetsTransport.class); - - private static Map MONITOR_MSGS = new HashMap(){{ - put(ChangePasswordRequest.class, "Transmitting change password request"); - put(GetObjectRequest.class, "Retrieving media object"); - put(LoginRequest.class, "Logging in"); - put(GetMetadataRequest.class, "Retrieving metadata"); - put(LogoutRequest.class, "Logging out"); - put(SearchRequest.class, "Executing search"); - }}; - - - /** - * Create a new transport instance. - * @param client An http client (make sure you call setUserCredentials - * on it before carrying out any transactions). - * @param capabilities the initial capabilities url list. This can be - * replaced with a more up to date version at any time (for example, - * post-login()) with setCapabilities() - * - * @see RetsHttpClient#setUserCredentials - */ - public RetsTransport(RetsHttpClient client, CapabilityUrls capabilities) { - this(client, capabilities, RetsVersion.DEFAULT, false); - } - - /** - * Create a new transport instance to speak a specific RETS version. - * @param client an http client - * @param capabilities the initial capabilities url list - * @param version the RETS version to use during initial negotiation - * (RetsTransport will automatically switch to whatever version the - * server supports). - */ - public RetsTransport(RetsHttpClient client, CapabilityUrls capabilities, RetsVersion version, boolean strict) { - this.client = client; - this.capabilities = capabilities; - this.doVersionHeader(version); - this.strict = strict; - this.client.addDefaultHeader("Accept", "*/*"); - this.monitor = new NullNetworkEventMonitor(); - } - - /** - * Query the current RetsVersion being used in this RetsTransport. - * - * Initially, this will be the value with which this object was - * constructed. - * - * However, this value may change after login. - * - * @return the current RetsVersion value being used by the - * RetsTransport. - */ - public RetsVersion getRetsVersion() { - return this.version; - } - - public boolean isStrict() { - return this.strict; - } - - public void setStrict(boolean strict) { - this.strict = strict; - } - - public void setMonitor(NetworkEventMonitor monitor) { - if (monitor == null) { - monitor = new NullNetworkEventMonitor(); - } - this.monitor = monitor; - } - - /** - * Set our RetsHttpClient up with the correct default RETS version to use, - * default to RETS 1.5. - * @param retsVersion - */ - private void doVersionHeader(RetsVersion retsVersion) { - if (this.client == null) - return; - if (retsVersion == null) - retsVersion = RetsVersion.DEFAULT; - this.version = retsVersion; - this.client.addDefaultHeader(RetsVersion.RETS_VERSION_HEADER, this.version.toString()); - } - - /** - * replace the capabilities url list with a new one - * @param capabilities the new capabilities url list - */ - public void setCapabilities(CapabilityUrls capabilities) { - this.capabilities = capabilities; - } - - /** - * switch to a specific HttpMethodName, POST/GET, where the - * method is supported. Where GET is not supported, POST - * will be used. - * @param method the HttpMethodName to use - */ - public void setMethod(String method) { - this.method = method; - } - - /** - * Available as an integration last resort - */ - public RetsHttpResponse doRequest(RetsHttpRequest req) throws RetsException { - Object monitorobj = null; - String msg = getMonitorMessage(req); - monitorobj = this.monitor.eventStart(msg); - - req.setVersion(this.version); - req.setUrl(this.capabilities); - - RetsHttpResponse httpResponse; - try { - httpResponse = this.client.doRequest(this.method, req); - } finally { - this.monitor.eventFinish(monitorobj); - } - return httpResponse; - } - - private String getMonitorMessage(RetsHttpRequest req) { - String msg = (String) MONITOR_MSGS.get(req.getClass()); - if (msg == null) { - msg = "communicating with network"; - } - return msg; - } - - /** - * Logs into the server. This transaction gets a list of capability URLs - * encapsulated in the LoginResponse that should typically be given back - * to the transport object with setCapabilities(). RETS Specification, - * section 4. - * - * @param req The login request - * @return the LoginResponse object - * @throws RetsException if the login failed or something went wrong on the - * network - * @see #setCapabilities - */ - public LoginResponse login(LoginRequest req) throws RetsException { - RetsHttpResponse retsHttpResponse = this.doRequest(req); - - String versionHeader = retsHttpResponse.getHeader(RetsVersion.RETS_VERSION_HEADER); - // may be null, which is fine, return null, dont throw - RetsVersion retsVersion = RetsVersion.getVersion(versionHeader); - if( retsVersion == null && this.strict ) - throw new RetsException(String.format("RETS Version is a required response header, version '%s' is unrecognized",versionHeader)); - // skip updating the client version if its not set (correctly) by the server - if( retsVersion != null ) this.doVersionHeader(retsVersion); - - LoginResponse response = new LoginResponse(this.capabilities.getLoginUrl()); - - String sessionId = retsHttpResponse.getCookie(RETS_SESSION_ID_HEADER); - response.setSessionId(sessionId); - response.setStrict(this.strict); - response.parse(retsHttpResponse.getInputStream(), this.version); - return response; - } - - /** - * Logs out of the server. No other transactions should be called until - * another login() succeeds. RETS Specification, Section 6. Logout is - * an optional transaction. This method returns null if the server does - * not support the Logout transaction. - * - * @return LogoutResponse or null if logout is not supported - * @throws RetsException if there is a network or remote server error - */ - public LogoutResponse logout() throws RetsException { - if (this.capabilities.getLogoutUrl() == null) { - return null; - } - RetsHttpRequest req = new LogoutRequest(); - RetsHttpResponse httpResponse = doRequest(req); - LogoutResponse response = new LogoutResponse(); - response.setStrict(this.strict); - try { - response.parse(httpResponse.getInputStream(), this.version); - } catch(RetsException e) { - if (e.getMessage().contains("Invalid number of children")){// most RETS servers have issues logging out for some reason. - LOG.warn("unsual response for logout request, but log out successful."); - } - - } - return response; - } - - /** - * Perform a non-streaming search and pass all results from the - * SearchRequest to the given collector. - * - * 12/06/20 Added charset, needed for sax parser - * @param req the search request - * @param collector the result object that will store the data - */ - public void search(SearchRequest req, SearchResultCollector collector) throws RetsException { - RetsHttpResponse httpResponse = doRequest(req); - new SearchResultHandler(collector).parse(httpResponse.getInputStream(), httpResponse.getCharset()); - } - - /** - * Override processing of the search completely by providing a - * SearchResultProcessor to process the results of the Search. - * - * @param req the search request - * @param processor the result object that will process the data - */ - public SearchResultSet search(SearchRequest req, SearchResultProcessor processor) throws RetsException { - RetsHttpResponse httpResponse = doRequest(req); - return processor.parse(httpResponse.getInputStream()); - } - - /** - * - * @param req GetObject request - * @return a GetObjectResponse - * @throws RetsException if the request is not valid or a network error - * occurs - */ - public GetObjectResponse getObject(GetObjectRequest req) throws RetsException { - if (this.capabilities.getGetObjectUrl() == null) { - throw new RetsException("Server does not support GetObject transaction."); - } - req.setUrl(this.capabilities); - RetsHttpResponse httpResponse = this.client.doRequest(this.method, req); - GetObjectResponse result = new GetObjectResponse(httpResponse.getHeaders(), httpResponse.getInputStream()); - return result; - } - - public Metadata getMetadata(String location) throws RetsException { - boolean compact = Boolean.getBoolean("rets-client.metadata.compact"); - GetMetadataRequest req = new GetMetadataRequest("SYSTEM", "*"); - if (compact) { - req.setCompactFormat(); - } - try { - RetsHttpResponse httpResponse = doRequest(req); - Object monitorobj = null; - monitorobj = this.monitor.eventStart("Parsing metadata"); - try { - SAXBuilder xmlBuilder = new SAXBuilder(); - Document xmlDocument = xmlBuilder.build(httpResponse.getInputStream()); - if (!location.equals("null")){ - XMLOutputter outputter = new XMLOutputter(); - FileWriter writer = new FileWriter(location); - outputter.output(xmlDocument, writer); - outputter.outputString(xmlDocument); - } - MetadataBuilder metadataBuilder; - if (req.isCompactFormat()) { - metadataBuilder = new JDomCompactBuilder(); - } else { - metadataBuilder = new JDomStandardBuilder(); - } - metadataBuilder.setStrict(this.strict); - - - - return metadataBuilder.doBuild(xmlDocument); - } finally { - this.monitor.eventFinish(monitorobj); - } - } catch (Exception e) { - throw new RetsException(e); - } - } - - public GetMetadataResponse getMetadata(GetMetadataRequest req) throws RetsException { - RetsHttpResponse httpResponse = doRequest(req); - Object monitorobj = null; - monitorobj = this.monitor.eventStart("Parsing metadata"); - try { - try { - return new GetMetadataResponse(httpResponse.getInputStream(), req.isCompactFormat(),this.strict); - } catch (InvalidReplyCodeException e) { - e.setRequestInfo(req.toString()); - throw e; - } - } finally { - this.monitor.eventFinish(monitorobj); - } - } - - public boolean changePassword(ChangePasswordRequest req) throws RetsException { - RetsHttpResponse httpResponse = doRequest(req); - ChangePasswordResponse response = new ChangePasswordResponse(httpResponse.getInputStream()); - // response will throw an exception if there is an error code - return (response != null); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsUtil.java b/target/filtered-sources/java/org/realtors/rets/client/RetsUtil.java deleted file mode 100644 index 4e9b530..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.realtors.rets.client; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import org.apache.commons.codec.DecoderException; -import org.apache.commons.codec.EncoderException; -import org.apache.commons.codec.net.URLCodec; -import org.apache.commons.lang.exception.NestableRuntimeException; - -/** Random utility functions. */ -public class RetsUtil { - public static void copyStream(InputStream in, OutputStream out) throws IOException { - byte[] buf = new byte[512]; - int count; - while (true) { - count = in.read(buf); - if (count < 1) { - in.close(); - out.close(); - return; - } - while (count > 0) { - out.write(buf); - } - } - } - - public static String urlEncode(String string) { - try { - return new URLCodec().encode(string); - } catch (EncoderException e) { - throw new NestableRuntimeException(e); - } - } - - public static String urlDecode(String string) { - try { - return new URLCodec().decode(string); - } catch (DecoderException e) { - throw new NestableRuntimeException(e); - } - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/RetsVersion.java b/target/filtered-sources/java/org/realtors/rets/client/RetsVersion.java deleted file mode 100644 index 2ceab0b..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/RetsVersion.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.realtors.rets.client; - -import java.io.Serializable; - -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; - -public class RetsVersion implements Serializable { - public static final String RETS_VERSION_HEADER = "RETS-Version"; - - public static final RetsVersion RETS_10 = new RetsVersion(1, 0, 0, 0); - public static final RetsVersion RETS_15 = new RetsVersion(1, 5, 0, 0); - public static final RetsVersion RETS_16 = new RetsVersion(1, 6, 0, 0); - public static final RetsVersion RETS_17 = new RetsVersion(1, 7, 0, 0); - public static final RetsVersion RETS_1_7_2 = new RetsVersion(1, 7, 2, 0); - public static final RetsVersion DEFAULT = RETS_1_7_2; - - private int mMajor; - private int mMinor; - private int mRevision; - private int mDraft; - - public RetsVersion(int major, int minor) { - this(major,minor,0,0); - } - - /** @deprecated use new RetsVersion(major, minor, 0, draft) */ - @Deprecated - public RetsVersion(int major, int minor, int draft) { - this(major,minor,0,draft); - } - - public RetsVersion(int major, int minor, int revision, int draft) { - this.mMajor = major; - this.mMinor = minor; - this.mRevision = revision; - this.mDraft = draft; - } - - public int getMajor() { - return this.mMajor; - } - - public int getMinor() { - return this.mMinor; - } - - public int getRevision() { - return this.mRevision; - } - - public int getDraft() { - return this.mDraft; - } - - @Override - public String toString() { - if (this.mRevision == 0) { - if (this.mDraft == 0) { - return "RETS/" + this.mMajor + "." + this.mMinor; - } - return "RETS/" + this.mMajor + "." + this.mMinor + "d" + this.mDraft; - } - if (this.mDraft == 0) { - return "RETS/" + this.mMajor + "." + this.mMinor + "." + this.mRevision; - } - return "RETS/" + this.mMajor + "." + this.mMinor + "." + this.mRevision + "d" + this.mDraft; - } - - @Override - public boolean equals(Object o) { - if (o instanceof RetsVersion) { - RetsVersion v = (RetsVersion) o; - if ((v.getMajor() == this.mMajor) && (v.getMinor() == this.mMinor) && (v.getRevision() == this.mRevision) && (v.getDraft() == this.mDraft)) { - return true; - } - } - return false; - } - - public static RetsVersion getVersion(String ver) { - if( StringUtils.isEmpty(ver) ) return null; - String[] split = StringUtils.trimToEmpty(ver).split("\\."); - int ma = NumberUtils.toInt(split[0],1); - int mn = split.length > 1 ? NumberUtils.toInt(split[1],0) : 0; - int re = 0; - int dr = 0; - if (split.length > 2) { - split = StringUtils.defaultString(split[2]).split("d"); - re = NumberUtils.toInt(split[0],0); - dr = split.length > 1 ? NumberUtils.toInt(split[1],0) : 0; - } - return new RetsVersion(ma,mn,re,dr); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchRequest.java b/target/filtered-sources/java/org/realtors/rets/client/SearchRequest.java deleted file mode 100644 index b5b4c4f..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchRequest.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.realtors.rets.client; - -/** - * - * The search request sent from search() in RetsSession - * - */ - -public class SearchRequest extends RetsHttpRequest { - - public static final int COUNT_NONE = 1; - public static final int COUNT_FIRST = 2; - public static final int COUNT_ONLY = 3; - public static final String FORMAT_STANDARD_XML = "STANDARD-XML"; - public static final String FORMAT_COMPACT = "COMPACT"; - public static final String FORMAT_COMPACT_DECODED = "COMPACT-DECODED"; - public static final String RETS_DMQL1 = "DMQL"; - public static final String RETS_DMQL2 = "DMQL2"; - public static final String KEY_TYPE = "SearchType"; - public static final String KEY_CLASS = "Class"; - public static final String KEY_DMQLVERSION = "QueryType"; - public static final String KEY_QUERY = "Query"; - public static final String KEY_COUNT = "Count"; - public static final String KEY_FORMAT = "Format"; - public static final String KEY_LIMIT = "Limit"; - public static final String KEY_OFFSET = "Offset"; - public static final String KEY_SELECT = "Select"; - public static final String KEY_RESTRICTEDINDICATOR = "RestrictedIndicator"; - public static final String KEY_STANDARDNAMES = "StandardNames"; - - - private String type; - - public SearchRequest(String stype, String sclass, String query) { - setQueryParameter(KEY_TYPE, stype); - this.type = stype; - setQueryParameter(KEY_CLASS, sclass); - setQueryParameter(KEY_QUERY, query); - setQueryParameter(KEY_FORMAT, FORMAT_COMPACT); - setQueryParameter(KEY_DMQLVERSION, RETS_DMQL2); - } - - - @Override - public void setUrl(CapabilityUrls urls) { - setUrl(urls.getSearchUrl()); - } - - public String getType() { - return this.type; - } - - public void setCountNone() { - setQueryParameter(KEY_COUNT, null); - } - - public void setCountFirst() { - setQueryParameter(KEY_COUNT, "1"); - } - - public void setCountOnly() { - setQueryParameter(KEY_COUNT, "2"); - } - - public void setFormatCompact() { - setQueryParameter(KEY_FORMAT, FORMAT_COMPACT); - } - - public void setFormatCompactDecoded() { - setQueryParameter(KEY_FORMAT, FORMAT_COMPACT_DECODED); - } - - public void setFormatStandardXml() { - setQueryParameter(KEY_FORMAT, FORMAT_STANDARD_XML); - } - - public void setFormatStandardXml(String dtdVersion) { - setQueryParameter(KEY_FORMAT, FORMAT_STANDARD_XML + ":" + dtdVersion); - } - - public void setLimit(int count) { - setQueryParameter(KEY_LIMIT, Integer.toString(count)); - } - - public void setLimitNone() { - setQueryParameter(KEY_LIMIT, null); - } - - public void setSelect(String sel) { - setQueryParameter(KEY_SELECT, sel); - } - - public void setRestrictedIndicator(String rest) { - setQueryParameter(KEY_RESTRICTEDINDICATOR, rest); - } - - public void setStandardNames() { - setQueryParameter(KEY_STANDARDNAMES, "1"); - } - - public void setSystemNames() { - setQueryParameter(KEY_STANDARDNAMES, null); - } - - public void setOffset(int offset) { - setQueryParameter(KEY_OFFSET, Integer.toString(offset)); - } - - public void setOffsetNone() { - setQueryParameter(KEY_OFFSET, null); - } - - /** TODO should the search automatically handle this??? shouldn't this be setable by vendor is that predicatable? */ - @Override - public void setVersion(RetsVersion ver) { - if (RetsVersion.RETS_10.equals(ver)) { - setQueryParameter(KEY_DMQLVERSION, RETS_DMQL1); - } else { - setQueryParameter(KEY_DMQLVERSION, RETS_DMQL2); - } - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResult.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResult.java deleted file mode 100644 index e590778..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResult.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.realtors.rets.client; - -import java.util.NoSuchElementException; -import java.util.Iterator; - -/** - * Interface for retrieving additional information from of a result from a RETS query/search - * - */ - -public interface SearchResult extends SearchResultInfo { - public String[] getRow(int idx) throws NoSuchElementException; - - public Iterator iterator(); - - public String[] getColumns(); - - public boolean isMaxrows(); - - public int getCount(); - - public boolean isComplete(); -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultCollector.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultCollector.java deleted file mode 100644 index 6d3a8a2..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultCollector.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.realtors.rets.client; - -/** - * Interface for a setting properties of a result from a query (used by SearchResultHandler) - */ - -public interface SearchResultCollector { - - public void setCount(int count); - - public void setColumns(String[] columns); - - public boolean addRow(String[] row); - - public void setMaxrows(); - - public void setComplete(); -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultHandler.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultHandler.java deleted file mode 100644 index cd9a49d..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultHandler.java +++ /dev/null @@ -1,280 +0,0 @@ -package org.realtors.rets.client; - -import java.io.IOException; -import java.io.InputStream; -import java.util.LinkedList; -import java.util.List; -import java.util.StringTokenizer; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.XMLReader; -/** - * - * Handles XML parsing from response setting the proper fields using a SearchResultCollector - * - */ -public class SearchResultHandler implements ContentHandler, ErrorHandler{ - private static final Log LOG = LogFactory.getLog(SearchResultHandler.class); - private static SAXParserFactory FACTORY = SAXParserFactory.newInstance(); - - private int dataCount; - private SearchResultCollector collector; - private StringBuffer currentEntry; - private String delimiter; - private Locator locator; - private String[] columns; - private InvalidReplyCodeHandler invalidReplyCodeHandler; - private CompactRowPolicy compactRowPolicy; - - public SearchResultHandler(SearchResultCollector r) { - this(r, InvalidReplyCodeHandler.FAIL, CompactRowPolicy.DEFAULT); - } - - public SearchResultHandler(SearchResultCollector r, InvalidReplyCodeHandler invalidReplyCodeHandler, CompactRowPolicy badRowPolicy) { - this.compactRowPolicy = badRowPolicy; - if (r == null) - throw new NullPointerException("SearchResultCollector must not be null"); - - if (invalidReplyCodeHandler == null) - throw new NullPointerException("InvalidReplyCodeHandler must not be null"); - - if (badRowPolicy == null) - throw new NullPointerException("BadRowPolicy must not be null"); - - this.collector = r; - this.dataCount = 0; - this.invalidReplyCodeHandler = invalidReplyCodeHandler; - } - - public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { - String name = localName; - if (localName.equals("")) { - name = qName; - } - if (name.equals("RETS") || name.equals("RETS-STATUS")) { - String rawrepcode = atts.getValue("ReplyCode"); - try { - int repcode = Integer.parseInt(rawrepcode); - if (repcode > 0) { - try { - if (ReplyCode.MAXIMUM_RECORDS_EXCEEDED.equals(repcode)) - return; - - if (ReplyCode.NO_RECORDS_FOUND.equals(repcode)) - return; - - if (name.equals("RETS")) - this.invalidReplyCodeHandler.invalidRetsReplyCode(repcode); - else - this.invalidReplyCodeHandler.invalidRetsStatusReplyCode(repcode); - } catch (InvalidReplyCodeException e) { - String text = atts.getValue("", "ReplyText"); - e.setRemoteMessage(text); - throw new SAXException(e); - } - } - } catch (NumberFormatException e) { - throw new SAXParseException("Invalid ReplyCode '" + rawrepcode + "'", this.locator); - } - return; - } - if (name == "COUNT") { - String s = atts.getValue("Records"); - if (s == null) { - s = atts.getValue("", "Records"); - if (s == null) { - throw new SAXParseException("COUNT tag has no Records " + "attribute", this.locator); - } - } - int i = Integer.parseInt(s, 10); - this.collector.setCount(i); - return; - } - if (name == "DELIMITER") { - String s = atts.getValue("value"); - if (s == null) { - s = atts.getValue("", "value"); - if (s == null) { - throw new RuntimeException("Invalid Delimiter"); - } - } - int i = Integer.parseInt(s, 16); - this.delimiter = "" + (char) i; - return; - } - if (name == "COLUMNS" || name == "DATA") { - this.currentEntry = new StringBuffer(); - return; - } - if (name == "MAXROWS") { - this.collector.setMaxrows(); - return; - } - // Unknown tag. danger, will. - LOG.warn("Unknown tag: " + name + ", qName = " + qName); - - } - - public void characters(char[] ch, int start, int length) { - if (this.currentEntry != null) { - this.currentEntry.append(ch, start, length); - } - } - - public void ignorableWhitespace(char[] ch, int start, int length) { - // we ignore NOZINK! - characters(ch, start, length); - } - - /** do NOT use string.split() unless your prepared to deal with loss due to token boundary conditions */ - private String[] split(String input) throws SAXParseException { - if (this.delimiter == null) { - throw new SAXParseException("Invalid compact format - DELIMITER not specified", this.locator); - } - if( !input.startsWith(this.delimiter) ){ - throw new SAXParseException("Invalid compact format", this.locator); - } - StringTokenizer tkn = new StringTokenizer(input, this.delimiter, true); - List list = new LinkedList(); - tkn.nextToken(); // junk the first element - String last = null; - while (tkn.hasMoreTokens()) { - String next = tkn.nextToken(); - if (next.equals(this.delimiter)) { - if (last == null) { - list.add(""); - } else { - last = null; - } - } else { - list.add(next); - last = next; - } - } - return (String[]) list.toArray(new String[0]); - } - - public void endElement(String uri, String localName, String qName) throws SAXParseException { - String name = localName; - if (name.equals("")) { - name = qName; - } - if (name.equals("COLUMNS") || name.equals("DATA")) { - String[] contents = split(this.currentEntry.toString()); - if (name.equals("COLUMNS")) { - this.collector.setColumns(contents); - this.columns = contents; - } else { - if( this.compactRowPolicy.apply(this.dataCount, this.columns, contents) ) { - this.dataCount++; - this.collector.addRow(contents); - } - } - this.currentEntry = null; - } - } - - public void startDocument() { - LOG.info("Start document"); - } - - public void endDocument() { - LOG.info("Document ended"); - this.collector.setComplete(); - } - - public void startPrefixMapping(String prefix, String uri) throws SAXException { - // LOG.debug("prefix mapping: " + prefix); - } - - public void endPrefixMapping(String prefix) throws SAXException { - // LOG.debug("prefix mapping: " + prefix); - } - - public void processingInstruction(String target, String data) throws SAXException { - throw new SAXException("processing instructions not supported: " + "target=" + target + ", data=" + data); - } - - public void skippedEntity(String name) throws SAXException { - throw new SAXException("skipped entities not supported: name=" + name); - } - - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - - public void error(SAXParseException e) throws SAXException { - throw e; - } - - public void fatalError(SAXParseException e) throws SAXException { - throw e; - } - - public void warning(SAXParseException e) { - LOG.warn("an error occured while parsing. Attempting to continue", e); - } - - - - public void parse(InputSource src) throws RetsException { - parse(src, null); - } - /** - * - * created in order to pass the charset to the parser for proper encoding - * @param str - * @param charset - * @throws RetsException - */ - - public void parse(InputStream str, String charset) throws RetsException { - parse(new InputSource(str), charset); - try { - str.close(); - } catch (IOException e) { - throw new RetsException(e); - } - } - /** - * Pareses given source with the given charset - * - * @param src - * @throws RetsException - */ - public void parse(InputSource src, String charset) throws RetsException { - String encoding = src.getEncoding(); - if (encoding == null && (charset != null)){ - encoding = charset; - LOG.warn("Charset from headers:" + charset + ". Setting as correct encoding for parsing"); - src.setEncoding(encoding); - } - try { - SAXParser p = FACTORY.newSAXParser(); - XMLReader r = p.getXMLReader(); - r.setContentHandler(this); - r.setErrorHandler(this); - r.parse(src); - } catch (SAXException se) { - if (se.getException() != null && se.getException() instanceof RetsException) { - throw (RetsException) se.getException(); - } - throw new RetsException(se); - } catch (Exception e) { - LOG.error("An exception occured", e); - throw new RetsException(e); - - } - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultImpl.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultImpl.java deleted file mode 100644 index 8d15182..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.realtors.rets.client; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.NoSuchElementException; - -import org.apache.commons.logging.LogFactory; -/** - * Concrete Implementation of SearchResult interface - * - */ -public class SearchResultImpl implements SearchResult, SearchResultCollector { - - private String[] columnNames; - private int count; - private List rows; - private boolean maxRows; - private boolean complete; - - public SearchResultImpl() { - this.count = 0; - this.rows = new ArrayList(); - this.maxRows = false; - this.complete = false; - } - - public void setCount(int count) { - this.count = count; - } - - public int getCount() { - if (this.count > 0) { - return this.count; - } - return this.rows.size(); - } - - public int getRowCount() { - return this.rows.size(); - } - - public void setColumns(String[] columns) { - this.columnNames = columns; - } - - public String[] getColumns() { - return this.columnNames; - } - - public boolean addRow(String[] row) { - if (row.length > this.columnNames.length) { - throw new IllegalArgumentException(String.format("Invalid number of result columns: got %s, expected %s",row.length, this.columnNames.length)); - } - if (row.length < this.columnNames.length) { - LogFactory.getLog(SearchResultCollector.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",this.rows.size(), row.length, this.columnNames.length)); - } - return this.rows.add(row); - } - - public String[] getRow(int idx) { - if (idx >= this.rows.size()) { - throw new NoSuchElementException(); - } - return this.rows.get(idx); - } - - public Iterator iterator() { - return this.rows.iterator(); - } - - public void setMaxrows() { - this.maxRows = true; - } - - public boolean isMaxrows() { - return this.maxRows; - } - - public void setComplete() { - this.complete = true; - } - - public boolean isComplete() { - return this.complete; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultInfo.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultInfo.java deleted file mode 100644 index d663cab..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultInfo.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.realtors.rets.client; - -/** - * Interface that describes high level information - * about the results of a search. - * @author jrayburn - */ -public interface SearchResultInfo { - public int getCount() throws RetsException; - - public String[] getColumns() throws RetsException; - - /** @throws IllegalStateException */ - public boolean isMaxrows() throws RetsException, IllegalStateException; - - /** - * Indicates that processing of this search - * is complete. - * - * @return true if this SearchResultSet is finished processing. - * @throws RetsException Thrown if there is an error - * processing the SearchResultSet. - */ - public boolean isComplete() throws RetsException; -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultProcessor.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultProcessor.java deleted file mode 100644 index 4fbd477..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultProcessor.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.realtors.rets.client; - -import java.io.InputStream; -import java.io.Reader; - -/** - * Interface for parsing results from a RETS query/search - */ -public interface SearchResultProcessor { - public SearchResultSet parse(InputStream in) throws RetsException; - - public SearchResultSet parse(Reader in) throws RetsException; -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SearchResultSet.java b/target/filtered-sources/java/org/realtors/rets/client/SearchResultSet.java deleted file mode 100644 index 3d96648..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SearchResultSet.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.realtors.rets.client; - -/** - * Iterator style interface for processing the results - * of a RETS search a single time. Information about the - * search can be retrieved once processing is complete by - * calling the getInfo() method. - * - * @author jrayburn - */ -public interface SearchResultSet extends SearchResultInfo { - public String[] next() throws RetsException; - - public boolean hasNext() throws RetsException; -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SingleObjectResponse.java b/target/filtered-sources/java/org/realtors/rets/client/SingleObjectResponse.java deleted file mode 100644 index 9a77972..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SingleObjectResponse.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.realtors.rets.client; - -import java.io.InputStream; -import java.util.Map; - -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -/** - * Representation of a single object returned - * from a RETS server. - * - * @author jrayburn - */ -public class SingleObjectResponse { - - public static final String CONTENT_TYPE = "Content-Type"; - public static final String LOCATION = "Location"; - public static final String CONTENT_DESCRIPTION = "Content-Description"; - public static final String OBJECT_ID = "Object-ID"; - public static final String CONTENT_ID = "Content-ID"; - - private Map headers; - private InputStream inputStream; - - public SingleObjectResponse(Map headers, InputStream in) { - this.headers = new CaseInsensitiveTreeMap(headers); - this.inputStream = in; - } - - public String getType() { - return (String) this.headers.get(CONTENT_TYPE); - } - - public String getContentID() { - return (String) this.headers.get(CONTENT_ID); - } - - public String getObjectID() { - return (String) this.headers.get(OBJECT_ID); - } - - public String getDescription() { - return (String) this.headers.get(CONTENT_DESCRIPTION); - } - - public String getLocation() { - return (String) this.headers.get(LOCATION); - } - - public InputStream getInputStream() { - return this.inputStream; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/SinglePartInputStream.java b/target/filtered-sources/java/org/realtors/rets/client/SinglePartInputStream.java deleted file mode 100644 index 0612b0c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/SinglePartInputStream.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.realtors.rets.client; - -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.PushbackInputStream; - -class SinglePartInputStream extends FilterInputStream { - private static final int EOS = -1; - - private final String boundary; - private boolean eos; - - - SinglePartInputStream(PushbackInputStream partInput, String boundary) { - super(partInput); - this.boundary = boundary; - } - - @Override - public int read() throws IOException { - int read = this.getPushBackStream().read(); - // was this the start of a boundary? - if( read != '\r' && read != '\n' ) return read; - this.getPushBackStream().unread(read); - byte[] peek = new byte[ "\r\n".length() + this.boundary.length()]; - // if so, check and see if the rest of the boundary is next - int peekRead = this.getPushBackStream().read(peek); - this.getPushBackStream().unread(peek, 0, peekRead); - if( new String(peek).contains(this.boundary) ) return EOS; - // if not, just a coincidence, just return the byte - return this.getPushBackStream().read(); - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - if(this.eos) return EOS; - - int read = off; - for( ; read < off + len; read++) { - int nextByte = this.read(); - if(nextByte == EOS) { - this.eos = true; - break; - } - - b[read] = (byte) nextByte; - } - return ( read - off ); - } - - @Override - public int read(byte[] b) throws IOException { - return this.read(b, 0, b.length); - } - - @Override - public void close() { - // noop - part of a larger stream - } - - private PushbackInputStream getPushBackStream() { - return (PushbackInputStream) this.in; - } -} \ No newline at end of file diff --git a/target/filtered-sources/java/org/realtors/rets/client/StreamingSearchResultProcessor.java b/target/filtered-sources/java/org/realtors/rets/client/StreamingSearchResultProcessor.java deleted file mode 100644 index cd2c4e7..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/StreamingSearchResultProcessor.java +++ /dev/null @@ -1,325 +0,0 @@ -package org.realtors.rets.client; - -import java.io.InputStream; -import java.io.Reader; -import java.util.LinkedList; - -import org.apache.commons.lang.exception.NestableRuntimeException; -import org.apache.commons.logging.LogFactory; -import org.xml.sax.InputSource; - -/** - * SearchResultProcessor that returns a streaming SearchResult implementation. - * - * @author jrayburn - */ -public class StreamingSearchResultProcessor implements SearchResultProcessor { - private final int mBufferSize; - private final int mTimeout; - private InvalidReplyCodeHandler mInvalidReplyCodeHandler; - private CompactRowPolicy mCompactRowPolicy; - - /** - * Construct a StreamingSearchResultProcessor. - * - * Waits indefinitely for buffer to be read from by - * client. - * - * @param bufferSize - * How many rows to buffer - */ - public StreamingSearchResultProcessor(int bufferSize) { - this(bufferSize, 0); - } - - /** - * Construct a StreamingSearchResultProcessor. - * - * Waits timeout milliseconds for buffer to - * be read from by client. - * - * @param bufferSize - * How many rows to buffer - * - * @param timeout - * How long to wait, in milliseconds, for the buffer - * to be read from when full. 0 indicates an indefinite - * wait. - */ - public StreamingSearchResultProcessor(int bufferSize, int timeout) { - super(); - this.mBufferSize = bufferSize; - this.mTimeout = timeout; - } - - /** how to deal with badly delimited data */ - public void setCompactRowPolicy(CompactRowPolicy badRowPolicy) { - this.mCompactRowPolicy = badRowPolicy; - } - - private CompactRowPolicy getCompactRowPolicy() { - if (this.mCompactRowPolicy == null) - return CompactRowPolicy.DEFAULT; - return this.mCompactRowPolicy; - } - - public void setInvalidRelyCodeHandler(InvalidReplyCodeHandler invalidReplyCodeHandler) { - this.mInvalidReplyCodeHandler = invalidReplyCodeHandler; - } - - private InvalidReplyCodeHandler getInvalidRelyCodeHandler() { - if (this.mInvalidReplyCodeHandler == null) - return InvalidReplyCodeHandler.FAIL; - return this.mInvalidReplyCodeHandler; - } - - public SearchResultSet parse(InputStream reader) { - return parse(new InputSource(reader)); - } - - public SearchResultSet parse(Reader reader) { - return parse(new InputSource(reader)); - } - - public SearchResultSet parse(InputSource source) { - StreamingSearchResult result = new StreamingSearchResult(this.mBufferSize, this.mTimeout); - StreamingThread thread = new StreamingThread(source, result, this.getInvalidRelyCodeHandler(), this.getCompactRowPolicy()); - thread.start(); - return result; - } - -} - -class StreamingThread extends Thread { - private StreamingSearchResult mResult; - private InputSource mSource; - private InvalidReplyCodeHandler mInvalidReplyCodeHandler; - private CompactRowPolicy badRowPolicy; - - public StreamingThread(InputSource source, StreamingSearchResult result,InvalidReplyCodeHandler invalidReplyCodeHandler, CompactRowPolicy badRowPolicy) { - this.mSource = source; - this.mResult = result; - this.mInvalidReplyCodeHandler = invalidReplyCodeHandler; - this.badRowPolicy = badRowPolicy; - } - - @Override - public void run() { - SearchResultHandler handler = new SearchResultHandler(this.mResult, this.mInvalidReplyCodeHandler, this.badRowPolicy); - try { - handler.parse(this.mSource); - } catch (RetsException e) { - this.mResult.setException(e); - } catch (Exception e) { - // socket timeouts, etc while obtaining xml bytes from InputSource ... - this.mResult.setException(new RetsException("Low level exception while attempting to parse input from source.", e)); - } - } - -} - -class StreamingSearchResult implements SearchResultSet, SearchResultCollector { - - private static final int PREPROCESS = 0; - private static final int BUFFER_AVAILABLE = 1; - private static final int BUFFER_FULL = 2; - private static final int COMPLETE = 3; - - private final int timeout; - private final int bufferSize; - private final LinkedList buffer; - - private boolean mMaxrows; - private int state; - private String[] columns; - private int count; - private RetsException exception; - - public StreamingSearchResult(int bufferSize, int timeout) { - if (bufferSize < 1) - throw new IllegalArgumentException("[bufferSize=" + bufferSize + "] must be greater than zero"); - if (timeout < 0) - throw new IllegalArgumentException("[timeout=" + timeout + "] must be greater than or equal to zero"); - - this.bufferSize = bufferSize; - this.timeout = timeout; - this.state = PREPROCESS; - this.buffer = new LinkedList(); - this.count = -1; - this.columns = null; - this.exception = null; - } - - // ------------ Producer Methods - - public synchronized boolean addRow(String[] row) { - if (row.length > this.columns.length) { - throw new IllegalArgumentException(String.format("Invalid number of result columns: got %s, expected %s",row.length, this.columns.length)); - } - if (row.length < this.columns.length) { - LogFactory.getLog(SearchResultCollector.class).warn(String.format("Row %s: Invalid number of result columns: got %s, expected ",this.count, row.length, this.columns.length)); - } - - if (state() > BUFFER_FULL) { - if (this.exception == null) - setException(new RetsException("Attempting to add rows to buffer when in complete state")); - throw new NestableRuntimeException(this.exception); - } - - // check complete. - while (checkRuntime() && state() == BUFFER_FULL) { - _wait(); - - if (state() >= BUFFER_FULL) { - if (this.exception == null) - setException(new RetsException("Timeout writing to streaming result set buffer, timeout length = " - + this.timeout)); - throw new NestableRuntimeException(this.exception); - } - } - - this.buffer.addLast(row); - - if (this.bufferSize == this.buffer.size()) - pushState(BUFFER_FULL); - else - pushState(BUFFER_AVAILABLE); - - this.notifyAll(); - return true; - } - - public synchronized void setComplete() { - pushState(COMPLETE); - notifyAll(); - } - - public synchronized void setCount(int count) { - this.count = count; - pushState(PREPROCESS); - notifyAll(); - } - - public synchronized void setColumns(String[] columns) { - this.columns = columns; - pushState(BUFFER_AVAILABLE); - notifyAll(); - } - - public synchronized void setMaxrows() { - this.mMaxrows = true; - pushState(COMPLETE); - notifyAll(); - } - - synchronized void setException(RetsException e) { - this.exception = e; - pushState(COMPLETE); - notifyAll(); - } - - // ----------- Consumer Methods - - public synchronized boolean hasNext() throws RetsException { - // wait for someone to add data to the queue - // or flag complete - while (checkException() && state() < COMPLETE) { - if (!this.buffer.isEmpty()) - return true; - - _wait(); - } - - return !this.buffer.isEmpty(); - } - - public synchronized String[] next() throws RetsException { - checkException(); - String[] row = this.buffer.removeFirst(); - if (this.state < COMPLETE) - pushState(BUFFER_AVAILABLE); - this.notifyAll(); - return row; - } - - public synchronized int getCount() throws RetsException { - while (checkException() && state() < BUFFER_AVAILABLE) { - _wait(); - } - return this.count; - } - - public synchronized String[] getColumns() throws RetsException { - while (checkException() && state() < BUFFER_AVAILABLE) { - _wait(); - } - return this.columns; - } - - public synchronized boolean isMaxrows() throws RetsException { - checkException(); - - if (!isComplete()) - throw new IllegalStateException("Cannot call isMaxRows until isComplete == true"); - - return this.mMaxrows; - } - - public synchronized SearchResultInfo getInfo() throws RetsException { - checkException(); - - if (!isComplete()) - throw new IllegalStateException("Cannot call isMaxRows until isComplete == true"); - - return this; - } - - public synchronized boolean isComplete() throws RetsException { - checkException(); - return state() >= COMPLETE; - } - - private synchronized boolean checkRuntime() { - try { - return checkException(); - } catch (RetsException e) { - throw new NestableRuntimeException(e); - } - } - - private synchronized boolean checkException() throws RetsException { - // considering doing something here to maintain the original - // stack trace but also provide the stack trace from this - // location... - if (this.exception != null) - throw this.exception; - return true; - } - - private void _wait() { - try { - wait(this.timeout); - } catch (InterruptedException e) { - pushState(COMPLETE); - throw new NestableRuntimeException(e); - } - } - - private void pushState(int newState) { - if (this.state >= COMPLETE && newState < COMPLETE) - throw new IllegalStateException("Cannot revert from complete state"); - - if (this.state > PREPROCESS && newState <= PREPROCESS) - throw new IllegalStateException("Cannot revert to preprocess state"); - - if (newState < this.state && newState != BUFFER_AVAILABLE && this.state != BUFFER_FULL) - throw new IllegalStateException("Cannot go back in state unless reverting to buffer available from full"); - - this.state = newState; - } - - private int state() { - return this.state; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/VersionInsensitiveRequest.java b/target/filtered-sources/java/org/realtors/rets/client/VersionInsensitiveRequest.java deleted file mode 100644 index c508742..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/VersionInsensitiveRequest.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.realtors.rets.client; - -public abstract class VersionInsensitiveRequest extends RetsHttpRequest { - /** - * Abstract class of subclasses where the Version of RETS is not needed (Password Request, Login Request, etc.) - */ - public VersionInsensitiveRequest() { - super(); - } - - @Override - public void setVersion(RetsVersion version) { - //noop - I don't care about version - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/client/metadata_tables.xml b/target/filtered-sources/java/org/realtors/rets/client/metadata_tables.xml deleted file mode 100644 index bc735b3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/client/metadata_tables.xml +++ /dev/null @@ -1,41 +0,0 @@ - -
- -
-
- -
-
-
- - - -
-
-
-
-
-
- - -
-
- - -
-
- -
- -
diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/AttrType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/AttrType.java deleted file mode 100644 index 67d477d..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/AttrType.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import java.io.Serializable; - -public interface AttrType extends Serializable { - public T parse(String value, boolean strict) throws MetaParseException; - public Class getType(); - public String render(T value); -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomCompactBuilder.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomCompactBuilder.java deleted file mode 100644 index c027aa5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomCompactBuilder.java +++ /dev/null @@ -1,706 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.jdom.Document; -import org.jdom.Element; -import org.jdom.JDOMException; -import org.jdom.input.SAXBuilder; -import org.realtors.rets.common.metadata.types.MClass; -import org.realtors.rets.common.metadata.types.MEditMask; -import org.realtors.rets.common.metadata.types.MLookup; -import org.realtors.rets.common.metadata.types.MLookupType; -import org.realtors.rets.common.metadata.types.MObject; -import org.realtors.rets.common.metadata.types.MResource; -import org.realtors.rets.common.metadata.types.MSearchHelp; -import org.realtors.rets.common.metadata.types.MSystem; -import org.realtors.rets.common.metadata.types.MTable; -import org.realtors.rets.common.metadata.types.MUpdate; -import org.realtors.rets.common.metadata.types.MUpdateType; -import org.realtors.rets.common.metadata.types.MValidationExpression; -import org.realtors.rets.common.metadata.types.MValidationExternal; -import org.realtors.rets.common.metadata.types.MValidationExternalType; -import org.realtors.rets.common.metadata.types.MValidationLookup; -import org.realtors.rets.common.metadata.types.MValidationLookupType; -import org.xml.sax.InputSource; - -public class JDomCompactBuilder extends MetadataBuilder { - public static final String CONTAINER_PREFIX = "METADATA-"; - public static final String CONTAINER_ROOT = "RETS"; - public static final String CONTAINER_METADATA = "METADATA"; - public static final String CONTAINER_SYSTEM = "METADATA-SYSTEM"; - public static final String CONTAINER_RESOURCE = "METADATA-RESOURCE"; - public static final String CONTAINER_FOREIGNKEY = "METADATA-FOREIGN_KEY"; - public static final String CONTAINER_CLASS = "METADATA-CLASS"; - public static final String CONTAINER_TABLE = "METADATA-TABLE"; - public static final String CONTAINER_UPDATE = "METADATA-UPDATE"; - public static final String CONTAINER_UPDATETYPE = "METADATA-UPDATE_TYPE"; - public static final String CONTAINER_OBJECT = "METADATA-OBJECT"; - public static final String CONTAINER_SEARCHHELP = "METADATA-SEARCH_HELP"; - public static final String CONTAINER_EDITMASK = "METADATA-EDITMASK"; - public static final String CONTAINER_UPDATEHELP = "METADATA-UPDATE_HELP"; - public static final String CONTAINER_LOOKUP = "METADATA-LOOKUP"; - public static final String CONTAINER_LOOKUPTYPE = "METADATA-LOOKUP_TYPE"; - public static final String CONTAINER_VALIDATIONLOOKUP = "METADATA-VALIDATION_LOOKUP"; - public static final String CONTAINER_VALIDATIONLOOKUPTYPE = "METADATA-VALIDATION_LOOKUP_TYPE"; - public static final String CONTAINER_VALIDATIONEXPRESSION = "METADATA-VALIDATION_EXPRESSION"; - public static final String CONTAINER_VALIDATIONEXTERNAL = "METADATA-VALIDATION_EXTERNAL"; - public static final String CONTAINER_VALIDATIONEXTERNALTYPE = "METADATA-VALIDATION_EXTERNAL_TYPE"; - public static final String ELEMENT_SYSTEM = "SYSTEM"; - public static final String COLUMNS = "COLUMNS"; - public static final String DATA = "DATA"; - public static final String ATTRIBUTE_RESOURCE = "Resource"; - public static final String ATTRIBUTE_CLASS = "Class"; - public static final String ATTRIBUTE_UPDATE = "Update"; - public static final String ATTRIBUTE_LOOKUP = "Lookup"; - public static final String ATTRIBUTE_VALIDATIONEXTERNAL = "ValidationExternal"; - public static final String ATTRIBUTE_VALIDATIONLOOKUP = "ValidationLookup"; - private static final Log LOG = LogFactory.getLog(JDomCompactBuilder.class); - - @Override - public Metadata doBuild(Object src) throws MetadataException { - return build((Document) src); - } - - public Metadata build(InputSource source) throws MetadataException { - SAXBuilder builder = new SAXBuilder(); - Document document; - try { - document = builder.build(source); - } catch (JDOMException e) { - throw new MetadataException("Couldn't build document", e); - } catch (IOException e) { - throw new MetadataException("Couldn't build document", e); - } - return build(document); - } - - @Override - public MetaObject[] parse(Object src) throws MetadataException { - return parse((Document) src); - } - - public MetaObject[] parse(Document src) throws MetadataException { - Element root = src.getRootElement(); - if (!root.getName().equals(CONTAINER_ROOT)) { - throw new MetadataException("Invalid root element"); - } - Element container = root.getChild(CONTAINER_SYSTEM); - if (container != null) { - MSystem sys = processSystem(container); - if (root.getChild(CONTAINER_RESOURCE) != null) { - Metadata m = new Metadata(sys); - recurseAll(m, root); - } - return new MetaObject[] { sys }; - } - container = root.getChild(CONTAINER_RESOURCE); - if (container != null) { - return processResource(container); - } - container = root.getChild(CONTAINER_CLASS); - if (container != null) { - return processClass(container); - } - container = root.getChild(CONTAINER_TABLE); - if (container != null) { - return processTable(container); - } - container = root.getChild(CONTAINER_UPDATE); - if (container != null) { - return processUpdate(container); - } - container = root.getChild(CONTAINER_UPDATETYPE); - if (container != null) { - return processUpdateType(container); - } - container = root.getChild(CONTAINER_OBJECT); - if (container != null) { - return processObject(container); - } - container = root.getChild(CONTAINER_SEARCHHELP); - if (container != null) { - return processSearchHelp(container); - } - container = root.getChild(CONTAINER_EDITMASK); - if (container != null) { - return processEditMask(container); - } - container = root.getChild(CONTAINER_LOOKUP); - if (container != null) { - return processLookup(container); - } - container = root.getChild(CONTAINER_LOOKUPTYPE); - if (container != null) { - return processLookupType(container); - } - container = root.getChild(CONTAINER_VALIDATIONLOOKUP); - if (container != null) { - return processValidationLookup(container); - } - container = root.getChild(CONTAINER_VALIDATIONLOOKUPTYPE); - if (container != null) { - return processValidationLookupType(container); - } - container = root.getChild(CONTAINER_VALIDATIONEXTERNAL); - if (container != null) { - return processValidationExternal(container); - } - container = root.getChild(CONTAINER_VALIDATIONEXTERNALTYPE); - if (container != null) { - return processValidationExternalType(container); - } - container = root.getChild(CONTAINER_VALIDATIONEXPRESSION); - if (container != null) { - return processValidationExpression(container); - } - return null; - } - - public Metadata build(Document src) throws MetadataException { - Element root = src.getRootElement(); - if (!root.getName().equals(CONTAINER_ROOT)) { - throw new MetadataException("Invalid root element"); - } - Element element = root.getChild(CONTAINER_SYSTEM); - if (element == null) { - throw new MetadataException("Missing element " + CONTAINER_SYSTEM); - } - MSystem sys = processSystem(element); - Metadata metadata; - metadata = new Metadata(sys); - recurseAll(metadata, root); - return metadata; - } - - private void recurseAll(Metadata metadata, Element root) throws MetaParseException { - attachResource(metadata, root); - attachClass(metadata, root); - attachTable(metadata, root); - attachUpdate(metadata, root); - attachUpdateType(metadata, root); - attachObject(metadata, root); - attachSearchHelp(metadata, root); - attachEditMask(metadata, root); - attachLookup(metadata, root); - attachLookupType(metadata, root); - attachValidationLookup(metadata, root); - attachValidationLookupType(metadata, root); - attachValidationExternal(metadata, root); - attachValidationExternalType(metadata, root); - attachValidationExpression(metadata, root); - } - - private void setAttributes(MetaObject obj, String[] columns, String[] data) { - int count = columns.length; - if (count > data.length) { - count = data.length; - } - for (int i = 0; i < count; i++) { - String column = columns[i]; - String datum = data[i]; - if (!datum.equals("")) { - setAttribute(obj, column, datum); - } - } - } - - private String[] getColumns(Element el) { - Element cols = el.getChild(COLUMNS); - return split(cols); - } - - /** do NOT use string.split() unless your prepared to deal with loss due to token boundary conditions */ - private String[] split(Element el) { - if( el == null ) return null; - final String delimiter = "\t"; - StringTokenizer tkn = new StringTokenizer(el.getText(), delimiter, true); - List list = new LinkedList(); - tkn.nextToken(); // junk the first element - String last = null; - while (tkn.hasMoreTokens()) { - String next = tkn.nextToken(); - if (next.equals(delimiter)) { - if (last == null) { - list.add(""); - } else { - last = null; - } - } else { - list.add(next); - last = next; - } - } - return (String[]) list.toArray(new String[0]); - } - - /** - * Gets an attribute that is not expected to be null (i.e. an attribute that - * MUST exist). - * - * @param element Element - * @param name Attribute name - * @return value of attribute - * @throws MetaParseException if the value is null. - */ - private String getNonNullAttribute(Element element, String name) throws MetaParseException { - String value = element.getAttributeValue(name); - if (value == null) { - throw new MetaParseException("Attribute '" + name + "' not found on tag " + toString(element)); - } - return value; - } - - private String toString(Element element) { - StringBuffer buffer = new StringBuffer(); - List attributes = element.getAttributes(); - buffer.append("'").append(element.getName()).append("'"); - buffer.append(", attributes: ").append(attributes); - return buffer.toString(); - } - - private MSystem processSystem(Element container) { - Element element = container.getChild(ELEMENT_SYSTEM); - MSystem system = buildSystem(); - // system metadata is such a hack. the first one here is by far my favorite - String comment = container.getChildText(MSystem.COMMENTS); - String systemId = element.getAttributeValue(MSystem.SYSTEMID); - String systemDescription = element.getAttributeValue(MSystem.SYSTEMDESCRIPTION); - String version = container.getAttributeValue(MSystem.VERSION); - String date = container.getAttributeValue(MSystem.DATE); - setAttribute(system, MSystem.COMMENTS, comment); - setAttribute(system, MSystem.SYSTEMID, systemId); - setAttribute(system, MSystem.SYSTEMDESCRIPTION, systemDescription); - setAttribute(system, MSystem.VERSION, version); - setAttribute(system, MSystem.DATE, date); - return system; - } - - private void attachResource(Metadata metadata, Element root) { - MSystem system = metadata.getSystem(); - List containers = root.getChildren(CONTAINER_RESOURCE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource[] resources = this.processResource(container); - for (int j = 0; j < resources.length; j++) { - system.addChild(MetadataType.RESOURCE, resources[j]); - } - } - } - - private MResource[] processResource(Element resourceContainer) { - String[] columns = getColumns(resourceContainer); - List rows = resourceContainer.getChildren(DATA); - MResource[] resources = new MResource[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MResource resource = buildResource(); - setAttributes(resource, columns, data); - resources[i] = resource; - } - return resources; - } - - private void attachClass(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_CLASS); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - String resourceId = getNonNullAttribute(container, ATTRIBUTE_RESOURCE); - MResource resource = metadata.getResource(resourceId); - MClass[] classes = processClass(container); - for (int j = 0; j < classes.length; j++) { - resource.addChild(MetadataType.CLASS, classes[j]); - } - } - } - - private MClass[] processClass(Element classContainer) throws MetaParseException { - String name = classContainer.getName(); - String resourceId = getNonNullAttribute(classContainer, ATTRIBUTE_RESOURCE); - LOG.debug("resource name: " + resourceId + " for container " + name); - String[] columns = getColumns(classContainer); - List rows = classContainer.getChildren(DATA); - MClass[] classes = new MClass[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MClass clazz = buildClass(); - setAttributes(clazz, columns, data); - classes[i] = clazz; - } - return classes; - } - - private void attachTable(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_TABLE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - String resourceId = getNonNullAttribute(container, ATTRIBUTE_RESOURCE); - String className = getNonNullAttribute(container, ATTRIBUTE_CLASS); - MClass clazz = metadata.getMClass(resourceId, className); - - if (clazz == null) { - //MarketLinx Strikes!!! - LOG.warn("Found table metadata for resource class: " + resourceId + ":" + className - + " but there is no class metadata for " + resourceId + ":" + className); - continue; - } - - MTable[] fieldMetadata = processTable(container); - for (int j = 0; j < fieldMetadata.length; j++) { - clazz.addChild(MetadataType.TABLE, fieldMetadata[j]); - } - } - } - - private MTable[] processTable(Element tableContainer) { - String[] columns = getColumns(tableContainer); - List rows = tableContainer.getChildren(DATA); - MTable[] fieldMetadata = new MTable[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MTable mTable = buildTable(); - setAttributes(mTable, columns, data); - fieldMetadata[i] = mTable; - } - return fieldMetadata; - } - - private void attachUpdate(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_UPDATE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MClass parent = metadata.getMClass(getNonNullAttribute(container, ATTRIBUTE_RESOURCE), getNonNullAttribute( - container, ATTRIBUTE_CLASS)); - MUpdate[] updates = processUpdate(container); - for (int j = 0; j < updates.length; j++) { - parent.addChild(MetadataType.UPDATE, updates[j]); - } - } - } - - private MUpdate[] processUpdate(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MUpdate[] updates = new MUpdate[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MUpdate update = buildUpdate(); - setAttributes(update, columns, data); - updates[i] = update; - } - return updates; - } - - private void attachUpdateType(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_UPDATETYPE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MUpdate parent = metadata.getUpdate(getNonNullAttribute(container, ATTRIBUTE_RESOURCE), - getNonNullAttribute(container, ATTRIBUTE_CLASS), getNonNullAttribute(container, ATTRIBUTE_UPDATE)); - MUpdateType[] updateTypes = processUpdateType(container); - for (int j = 0; j < updateTypes.length; j++) { - parent.addChild(MetadataType.UPDATE_TYPE, updateTypes[j]); - } - } - } - - private MUpdateType[] processUpdateType(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MUpdateType[] updateTypes = new MUpdateType[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MUpdateType updateType = buildUpdateType(); - setAttributes(updateType, columns, data); - updateTypes[i] = updateType; - } - return updateTypes; - } - - private void attachObject(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_OBJECT); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MObject[] objects = processObject(container); - for (int j = 0; j < objects.length; j++) { - parent.addChild(MetadataType.OBJECT, objects[j]); - } - } - } - - private MObject[] processObject(Element objectContainer) { - String[] columns = getColumns(objectContainer); - List rows = objectContainer.getChildren(DATA); - MObject[] objects = new MObject[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MObject object = buildObject(); - setAttributes(object, columns, data); - objects[i] = object; - } - return objects; - } - - private void attachSearchHelp(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_SEARCHHELP); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MSearchHelp[] searchHelps = processSearchHelp(container); - for (int j = 0; j < searchHelps.length; j++) { - parent.addChild(MetadataType.SEARCH_HELP, searchHelps[j]); - } - } - } - - private MSearchHelp[] processSearchHelp(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MSearchHelp[] searchHelps = new MSearchHelp[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MSearchHelp searchHelp = buildSearchHelp(); - setAttributes(searchHelp, columns, data); - searchHelps[i] = searchHelp; - } - return searchHelps; - } - - private void attachEditMask(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_EDITMASK); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MEditMask[] editMasks = processEditMask(container); - for (int j = 0; j < editMasks.length; j++) { - parent.addChild(MetadataType.EDITMASK, editMasks[j]); - } - } - } - - private MEditMask[] processEditMask(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MEditMask[] editMasks = new MEditMask[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MEditMask editMask = buildEditMask(); - setAttributes(editMask, columns, data); - editMasks[i] = editMask; - } - return editMasks; - } - - private void attachLookup(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_LOOKUP); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MLookup[] lookups = processLookup(container); - for (int j = 0; j < lookups.length; j++) { - parent.addChild(MetadataType.LOOKUP, lookups[j]); - } - } - } - - private MLookup[] processLookup(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MLookup[] lookups = new MLookup[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MLookup lookup = buildLookup(); - setAttributes(lookup, columns, data); - lookups[i] = lookup; - } - return lookups; - } - - private void attachLookupType(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_LOOKUPTYPE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MLookup parent = metadata.getLookup(getNonNullAttribute(container, ATTRIBUTE_RESOURCE), - getNonNullAttribute(container, ATTRIBUTE_LOOKUP)); - - if (parent == null) { - LOG.warn("Skipping lookup type: could not find lookup for tag " + toString(container)); - continue; - } - - MLookupType[] lookupTypes = processLookupType(container); - for (int j = 0; j < lookupTypes.length; j++) { - parent.addChild(MetadataType.LOOKUP_TYPE, lookupTypes[j]); - } - } - } - - private MLookupType[] processLookupType(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MLookupType[] lookupTypes = new MLookupType[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MLookupType lookupType = buildLookupType(); - setAttributes(lookupType, columns, data); - lookupTypes[i] = lookupType; - } - return lookupTypes; - } - - private void attachValidationLookup(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_VALIDATIONLOOKUP); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MValidationLookup[] validationLookups = processValidationLookup(container); - for (int j = 0; j < validationLookups.length; j++) { - parent.addChild(MetadataType.VALIDATION_LOOKUP, validationLookups[j]); - } - } - } - - private MValidationLookup[] processValidationLookup(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MValidationLookup[] validationLookups = new MValidationLookup[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MValidationLookup validationLookup = buildValidationLookup(); - setAttributes(validationLookup, columns, data); - validationLookups[i] = validationLookup; - } - return validationLookups; - } - - private void attachValidationLookupType(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_VALIDATIONLOOKUPTYPE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MValidationLookup parent = metadata.getValidationLookup(getNonNullAttribute(container, ATTRIBUTE_RESOURCE), - getNonNullAttribute(container, ATTRIBUTE_VALIDATIONLOOKUP)); - MValidationLookupType[] validationLookupTypes = processValidationLookupType(container); - for (int j = 0; j < validationLookupTypes.length; j++) { - parent.addChild(MetadataType.VALIDATION_LOOKUP_TYPE, validationLookupTypes[j]); - } - } - } - - private MValidationLookupType[] processValidationLookupType(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MValidationLookupType[] validationLookupTypes = new MValidationLookupType[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MValidationLookupType validationLookupType = buildValidationLookupType(); - setAttributes(validationLookupType, columns, data); - validationLookupTypes[i] = validationLookupType; - } - return validationLookupTypes; - } - - private void attachValidationExternal(Metadata metadata, Element root) { - List containers = root.getChildren(CONTAINER_VALIDATIONEXTERNAL); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(container.getAttributeValue(ATTRIBUTE_RESOURCE)); - MValidationExternal[] validationExternals = processValidationExternal(container); - for (int j = 0; j < validationExternals.length; j++) { - parent.addChild(MetadataType.VALIDATION_EXTERNAL, validationExternals[j]); - } - } - } - - private MValidationExternal[] processValidationExternal(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MValidationExternal[] validationExternals = new MValidationExternal[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MValidationExternal validationExternal = buildValidationExternal(); - setAttributes(validationExternal, columns, data); - validationExternals[i] = validationExternal; - } - return validationExternals; - } - - private void attachValidationExternalType(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_VALIDATIONEXTERNALTYPE); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MValidationExternal parent = metadata.getValidationExternal(getNonNullAttribute(container, - ATTRIBUTE_RESOURCE), getNonNullAttribute(container, ATTRIBUTE_VALIDATIONEXTERNAL)); - MValidationExternalType[] validationExternalTypes = processValidationExternalType(container); - for (int j = 0; j < validationExternalTypes.length; j++) { - parent.addChild(MetadataType.VALIDATION_EXTERNAL_TYPE, validationExternalTypes[j]); - } - } - } - - private MValidationExternalType[] processValidationExternalType(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MValidationExternalType[] validationExternalTypes = new MValidationExternalType[rows.size()]; - for (int i = 0; i < rows.size(); i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MValidationExternalType validationExternalType = buildValidationExternalType(); - setAttributes(validationExternalType, columns, data); - validationExternalTypes[i] = validationExternalType; - } - return validationExternalTypes; - } - - private void attachValidationExpression(Metadata metadata, Element root) throws MetaParseException { - List containers = root.getChildren(CONTAINER_VALIDATIONEXPRESSION); - for (int i = 0; i < containers.size(); i++) { - Element container = (Element) containers.get(i); - MResource parent = metadata.getResource(getNonNullAttribute(container, ATTRIBUTE_RESOURCE)); - MValidationExpression[] expressions = processValidationExpression(container); - for (int j = 0; j < expressions.length; j++) { - parent.addChild(MetadataType.VALIDATION_EXPRESSION, expressions[j]); - } - } - } - - private MValidationExpression[] processValidationExpression(Element container) { - String[] columns = getColumns(container); - List rows = container.getChildren(DATA); - MValidationExpression[] expressions = new MValidationExpression[rows.size()]; - for (int i = 0; i < expressions.length; i++) { - Element element = (Element) rows.get(i); - String[] data = split(element); - MValidationExpression expression = buildValidationExpression(); - setAttributes(expression, columns, data); - expressions[i] = expression; - } - return expressions; - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomStandardBuilder.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomStandardBuilder.java deleted file mode 100644 index ef8cb93..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/JDomStandardBuilder.java +++ /dev/null @@ -1,628 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.HashMap; - -import org.jdom.Attribute; -import org.jdom.Document; -import org.jdom.Element; -import org.realtors.rets.common.metadata.types.MClass; -import org.realtors.rets.common.metadata.types.MEditMask; -import org.realtors.rets.common.metadata.types.MForeignKey; -import org.realtors.rets.common.metadata.types.MLookup; -import org.realtors.rets.common.metadata.types.MLookupType; -import org.realtors.rets.common.metadata.types.MObject; -import org.realtors.rets.common.metadata.types.MResource; -import org.realtors.rets.common.metadata.types.MSearchHelp; -import org.realtors.rets.common.metadata.types.MSystem; -import org.realtors.rets.common.metadata.types.MTable; -import org.realtors.rets.common.metadata.types.MUpdate; -import org.realtors.rets.common.metadata.types.MUpdateHelp; -import org.realtors.rets.common.metadata.types.MUpdateType; -import org.realtors.rets.common.metadata.types.MValidationExpression; -import org.realtors.rets.common.metadata.types.MValidationExternal; -import org.realtors.rets.common.metadata.types.MValidationExternalType; -import org.realtors.rets.common.metadata.types.MValidationLookup; -import org.realtors.rets.common.metadata.types.MValidationLookupType; - -/** Parses apart a complete Standard-XML response, returns a Metadata object */ -public class JDomStandardBuilder extends MetadataBuilder { - public static final String ELEMENT_SYSTEM = "System"; - public static final String ELEMENT_RESOURCE = "Resource"; - public static final String ELEMENT_FOREIGNKEY = "ForeignKey"; - public static final String ELEMENT_CLASS = "Class"; - public static final String ELEMENT_TABLE = "Field"; - public static final String ELEMENT_UPDATE = "UpdateType"; - public static final String ELEMENT_UPDATETYPE = "UpdateField"; - public static final String ELEMENT_OBJECT = "Object"; - public static final String ELEMENT_SEARCHHELP = "SearchHelp"; - public static final String ELEMENT_EDITMASK = "EditMask"; - public static final String ELEMENT_UPDATEHELP = "UpdateHelp"; - public static final String ELEMENT_LOOKUP = "Lookup"; - public static final String ELEMENT_LOOKUPTYPE = "LookupType"; - public static final String ELEMENT_VALIDATIONLOOKUP = "ValidationLookup"; - public static final String ELEMENT_VALIDATIONLOOKUPTYPE = "ValidationLookupType"; - public static final String ELEMENT_VALIDATIONEXPRESSION = "ValidationExpression"; - public static final String ELEMENT_VALIDATIONEXTERNAL = "ValidationExternalType"; - public static final String ELEMENT_VALIDATIONEXTERNALTYPE = "ValidationExternal"; - public static final String ATTRIBUTE_RESOURCEID = ELEMENT_RESOURCE; - public static final String ATTRIBUTE_CLASSNAME = ELEMENT_CLASS; - public static final String ATTRIBUTE_UPDATE = ELEMENT_UPDATE; - public static final String ATTRIBUTE_LOOKUP = ELEMENT_LOOKUP; - public static final String ATTRIBUTE_VALIDATIONLOOKUP = ELEMENT_VALIDATIONLOOKUP; - public static final String ATTRIBUTE_VALIDATIONEXTERNAL = ELEMENT_VALIDATIONEXTERNAL; - public static final Map sType2Element = new HashMap(); - - static { - sType2Element.put(MetadataType.SYSTEM, ELEMENT_SYSTEM); - sType2Element.put(MetadataType.RESOURCE, ELEMENT_RESOURCE); - sType2Element.put(MetadataType.FOREIGNKEYS, ELEMENT_FOREIGNKEY); - sType2Element.put(MetadataType.CLASS, ELEMENT_CLASS); - sType2Element.put(MetadataType.TABLE, ELEMENT_TABLE); - sType2Element.put(MetadataType.UPDATE, ELEMENT_UPDATE); - sType2Element.put(MetadataType.UPDATE_TYPE, ELEMENT_UPDATETYPE); - sType2Element.put(MetadataType.SEARCH_HELP, ELEMENT_SEARCHHELP); - sType2Element.put(MetadataType.EDITMASK, ELEMENT_EDITMASK); - sType2Element.put(MetadataType.UPDATE_HELP, ELEMENT_UPDATEHELP); - sType2Element.put(MetadataType.LOOKUP, ELEMENT_LOOKUP); - sType2Element.put(MetadataType.LOOKUP_TYPE, ELEMENT_LOOKUPTYPE); - sType2Element.put(MetadataType.VALIDATION_LOOKUP, ELEMENT_VALIDATIONLOOKUP); - sType2Element.put(MetadataType.VALIDATION_LOOKUP_TYPE, ELEMENT_VALIDATIONLOOKUPTYPE); - sType2Element.put(MetadataType.VALIDATION_EXTERNAL, ELEMENT_VALIDATIONEXTERNAL); - sType2Element.put(MetadataType.VALIDATION_EXTERNAL_TYPE, ELEMENT_VALIDATIONEXTERNALTYPE); - sType2Element.put(MetadataType.VALIDATION_EXPRESSION, ELEMENT_VALIDATIONEXPRESSION); - } - - @Override - public Metadata doBuild(Object src) throws MetadataException { - return build((Document) src); - } - - public Metadata build(Document src) throws MetadataException { - Element element = src.getRootElement(); - expectElement(element, CONTAINER_ROOT); - element = getElement(element, CONTAINER_METADATA); - return build(element); - } - - @Override - public MetaObject[] parse(Object src) throws MetadataException { - return parse((Document) src); - } - - public MetaObject[] parse(Document src) throws MetadataException { - Element element = src.getRootElement(); - expectElement(element, CONTAINER_ROOT); - Element container = getElement(element, CONTAINER_METADATA); - boolean recurse = checkForRecursion(container); - List list = container.getChildren(); - if (list.size() == 0) { - return null; - } - return processContainer(null, (Element) list.get(0), recurse); - } - - /** - * Function to determine if a request contains recursive data or not. - * This is done here instead of inside processContainer because, well, - * it's easier and more reliable (processContainer might not figure out - * that a request is recursive until the third or 4th child if there are - * no children for the first couple of elements. - * - * @param top The outside METADATA container. - * @return true if the request is recursive - * - */ - private boolean checkForRecursion(Element top) { - /* - * this seems like a really nasty loop. However, if there are a - * lot of recursive elements, we'll find out pretty quickly, and if - * we fall all the way to the end then there probably wasn't that - * much to look through. - */ - Iterator children = top.getChildren().iterator(); - while (children.hasNext()) { - /* each of these is a container (METADATA-*) type */ - Element element = (Element) children.next(); - Iterator iterator = element.getChildren().iterator(); - while (iterator.hasNext()) { - /* each of these is an item element */ - Element child = (Element) iterator.next(); - Iterator subtypes = child.getChildren().iterator(); - while (subtypes.hasNext()) { - Element subtype = (Element) subtypes.next(); - if (subtype.getName().startsWith(CONTAINER_PREFIX)) { - return true; - } - } - } - } - return false; - } - - private MetaObject[] processContainer(MetaObject parent, Element container, boolean recursion) { - MetadataType type = (MetadataType) sContainer2Type.get(container.getName()); - if (type == null) { - throw new RuntimeException("no matching type for container " + container.getName()); - } - List elements = container.getChildren((String) sType2Element.get(type)); - String path = getPath(container); - List output = null; - if (parent == null) { - output = new LinkedList(); - } - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MetaObject obj = newType(type); - setAttributes(obj, element); - if (output != null) { - output.add(obj); - } - if (parent != null) { - parent.addChild(type, obj); - } else { - /** - * Weirdness abounds. There IS an ID attribute of System, - * and the SystemID is included in the Metadata container - * attributes, but the system id is not part of the metadata - * request path for a getMetadata request, so we ignore it. - */ - if (!type.equals(MetadataType.SYSTEM)) { - obj.setPath(path); - } - } - if (recursion) { - MetadataType[] childTypes = obj.getChildTypes(); - for (int j = 0; j < childTypes.length; j++) { - MetadataType childType = childTypes[j]; - Element childContainer = element.getChild(CONTAINER_PREFIX + childType.name()); - if (childContainer == null) { - obj.addChild(childType, null); - } else { - processContainer(obj, childContainer, true); - } - } - } - } - if (output == null) { - return null; - } - return (MetaObject[]) output.toArray(new MetaObject[0]); - } - - String getPath(Element container) { - String resource = container.getAttributeValue(ATTRIBUTE_RESOURCEID); - if (resource == null) { - return null; - } - String classname = container.getAttributeValue(ATTRIBUTE_CLASSNAME); - if (classname != null) { - String update = container.getAttributeValue(ATTRIBUTE_UPDATE); - if (update != null) { - return resource + ":" + classname + ":" + update; - } - return resource + ":" + classname; - } - String lookup = container.getAttributeValue(ATTRIBUTE_LOOKUP); - if (lookup != null) { - return resource + ":" + lookup; - } - String vallkp = container.getAttributeValue(ATTRIBUTE_VALIDATIONLOOKUP); - if (vallkp != null) { - return resource + ":" + vallkp; - } - String vale = container.getAttributeValue(ATTRIBUTE_VALIDATIONEXTERNAL); - if (vale != null) { - return resource + ":" + vale; - } - return resource; - } - - public Metadata build(Element element) throws MetadataException { - expectElement(element, CONTAINER_METADATA); - element = getElement(element, CONTAINER_SYSTEM); - //maybe i get the attribute here - MSystem sys = processSystem(element); - return new Metadata(sys); - } - - private Element getElement(Element parent, String type) throws MetadataException { - Element element = parent.getChild(type); - if (element == null) { - throw new MetadataException("Missing element " + type); - } - return element; - } - - - private void expectElement(Element element, String type) throws MetadataException { - if (!element.getName().equalsIgnoreCase(type)) {// changed to ignore case - throw new MetadataException("Expecting element " + type + ", got " + element.getName()); - } - } - - private void setAttributes(MetaObject obj, Element el) { - - List children = el.getChildren(); - for (int i = 0; i < children.size(); i++) { - Element child = (Element) children.get(i); - String name = child.getName(); - if (!name.startsWith(CONTAINER_PREFIX)) { - String value = child.getTextTrim(); - setAttribute(obj, name, value); - } else { - // LOG.info("skipping container element " + name); - } - } - } - - //when atrributes from the xml element are needed - public void setAttributesFromXMLAttr(MetaObject obj, Element el) { - - Iterator attrIter = el.getParentElement().getAttributes().iterator(); - - while(attrIter.hasNext()){ - Attribute attr = (Attribute) attrIter.next(); - String name = attr.getName(); - String value= attr.getValue().trim(); - setAttribute(obj, name, value); - } - } - - - /** - * If we're a recursive request, initialize all possible child types so - * we don't have to try to pull them later, dynamically - */ - private void init(MetaObject item) { - MetadataType[] childTypes = item.getChildTypes(); - for (int i = 0; i < childTypes.length; i++) { - MetadataType type = childTypes[i]; - item.addChild(type, null); - } - } - - private MSystem processSystem(Element container) { - Element element = container.getChild(ELEMENT_SYSTEM); - if (element == null){ - element = container.getChild(ELEMENT_SYSTEM.toUpperCase()); - } - MSystem system = buildSystem(); - init(system); - setAttributesFromXMLAttr(system, element); - setAttributes(system, element); - Element child; - child = element.getChild(CONTAINER_RESOURCE); - if (child != null) { - processResource(system, child); - } - child = element.getChild(CONTAINER_FOREIGNKEY); - if (child != null) { - processForeignKey(system, child); - } - return system; - } - - private void processResource(MSystem system, Element container) { - List resources = container.getChildren(ELEMENT_RESOURCE); - for (int i = 0; i < resources.size(); i++) { - Element element = (Element) resources.get(i); - MResource resource = buildResource(); - init(resource); - setAttributes(resource, element); - system.addChild(MetadataType.RESOURCE, resource); - Element child; - child = element.getChild(CONTAINER_CLASS); - if (child != null) { - processClass(resource, child); - } - child = element.getChild(CONTAINER_OBJECT); - if (child != null) { - processObject(resource, child); - } - child = element.getChild(CONTAINER_SEARCH_HELP); - if (child != null) { - processSearchHelp(resource, child); - } - child = element.getChild(CONTAINER_EDITMASK); - if (child != null) { - processEditMask(resource, child); - } - child = element.getChild(CONTAINER_LOOKUP); - if (child != null) { - processLookup(resource, child); - } - child = element.getChild(CONTAINER_UPDATEHELP); - if (child != null) { - processUpdateHelp(resource, child); - } - child = element.getChild(CONTAINER_VALIDATIONLOOKUP); - if (child != null) { - processValidationLookup(resource, child); - } - child = element.getChild(CONTAINER_VALIDATIONEXPRESSION); - if (child != null) { - processValidationExpression(resource, child); - } - child = element.getChild(CONTAINER_VALIDATIONEXTERNAL); - if (child != null) { - processValidationExternal(resource, child); - } - } - } - - private void processEditMask(MResource parent, Element container) { - List elements = container.getChildren(ELEMENT_EDITMASK); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MEditMask mask = buildEditMask(); - setAttributes(mask, element); - parent.addChild(MetadataType.EDITMASK, mask); - } - } - - private void processLookup(MResource parent, Element container) { - List elements15 = container.getChildren(ELEMENT_LOOKUP); - List elements17 = container.getChildren(ELEMENT_LOOKUPTYPE); - List elements; - //some Rets Servers have lookuptype and lookup elements interchanged - if (elements15.isEmpty()){ - elements = elements17; - } else { - elements = elements15; - } - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MLookup lookup = buildLookup(); - init(lookup); - setAttributes(lookup, element); - parent.addChild(MetadataType.LOOKUP, lookup); - Element child = element.getChild(CONTAINER_LOOKUPTYPE); - if (child != null) { - processLookupType(lookup, child); - } - } - } - - private void processLookupType(MLookup parent, Element container) { - - List elements15 = container.getChildren(ELEMENT_LOOKUPTYPE);// check spec - List elements17 = container.getChildren(ELEMENT_LOOKUP); - List elements; - //some Rets Servers have lookuptype and lookup elements interchanged - if (elements15.isEmpty()){ - elements = elements17; - } else { - elements = elements15; - } - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MLookupType type = buildLookupType(); - setAttributes(type, element); - parent.addChild(MetadataType.LOOKUP_TYPE, type); - } - } - - private void processUpdateHelp(MResource parent, Element container) { - List elements = container.getChildren(ELEMENT_UPDATEHELP); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MUpdateHelp help = buildUpdateHelp(); - setAttributes(help, element); - parent.addChild(MetadataType.UPDATE_HELP, help); - } - } - - private void processValidationLookup(MResource parent, Element container) { - List elements = container.getChildren(ELEMENT_VALIDATIONLOOKUP); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MValidationLookup lookup = buildValidationLookup(); - init(lookup); - setAttributes(lookup, element); - parent.addChild(MetadataType.VALIDATION_LOOKUP, lookup); - Element child = element.getChild(CONTAINER_VALIDATIONLOOKUPTYPE); - if (child != null) { - processValidationLookupType(lookup, child); - } - } - } - - private void processValidationLookupType(MValidationLookup parent, Element container) { - List elements = container.getChildren(ELEMENT_VALIDATIONLOOKUPTYPE); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MValidationLookupType lookupType = buildValidationLookupType(); - setAttributes(lookupType, element); - parent.addChild(MetadataType.VALIDATION_LOOKUP_TYPE, lookupType); - } - } - - private void processValidationExpression(MResource parent, Element container) { - List elements = container.getChildren(ELEMENT_VALIDATIONEXPRESSION); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MValidationExpression expression = buildValidationExpression(); - setAttributes(expression, element); - parent.addChild(MetadataType.VALIDATION_EXPRESSION, expression); - } - } - - private void processValidationExternal(MResource parent, Element container) { - List elements = container.getChildren(ELEMENT_VALIDATIONEXTERNAL); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MValidationExternal external = buildValidationExternal(); - init(external); - setAttributes(external, element); - parent.addChild(MetadataType.VALIDATION_EXTERNAL, external); - Element child = element.getChild(CONTAINER_VALIDATIONEXTERNALTYPE); - if (child != null) { - processValidationExternalType(external, child); - } - } - } - - private void processValidationExternalType(MValidationExternal parent, Element container) { - List elements = container.getChildren(ELEMENT_VALIDATIONEXTERNALTYPE); - for (int i = 0; i < elements.size(); i++) { - Element element = (Element) elements.get(i); - MValidationExternalType type = buildValidationExternalType(); - setAttributes(type, element); - parent.addChild(MetadataType.VALIDATION_EXTERNAL_TYPE, type); - } - } - - private void processSearchHelp(MResource parent, Element container) { - List searchhelps = container.getChildren(ELEMENT_SEARCHHELP); - for (int i = 0; i < searchhelps.size(); i++) { - Element element = (Element) searchhelps.get(i); - MSearchHelp searchhelp = buildSearchHelp(); - setAttributes(searchhelp, element); - parent.addChild(MetadataType.SEARCH_HELP, searchhelp); - } - } - - private void processObject(MResource parent, Element container) { - List objects = container.getChildren(ELEMENT_OBJECT); - for (int i = 0; i < objects.size(); i++) { - Element element = (Element) objects.get(i); - MObject obj = buildObject(); - setAttributes(obj, element); - parent.addChild(MetadataType.OBJECT, obj); - } - } - - private void processClass(MResource parent, Element container) { - List classes = container.getChildren(ELEMENT_CLASS); - for (int i = 0; i < classes.size(); i++) { - Element element = (Element) classes.get(i); - MClass clazz = buildClass(); - init(clazz); - setAttributes(clazz, element); - parent.addChild(MetadataType.CLASS, clazz); - Element child; - child = element.getChild(CONTAINER_TABLE); - if (child != null) { - processTable(clazz, child); - } - child = element.getChild(CONTAINER_UPDATE); - if (child != null) { - processUpdate(clazz, child); - } - } - } - - private void processTable(MClass parent, Element container) { - List tables = container.getChildren(ELEMENT_TABLE); - for (int i = 0; i < tables.size(); i++) { - Element element = (Element) tables.get(i); - MTable table = buildTable(); - setAttributes(table, element); - parent.addChild(MetadataType.TABLE, table); - } - } - - private void processUpdate(MClass parent, Element container) { - List updates = container.getChildren(ELEMENT_UPDATE); - for (int i = 0; i < updates.size(); i++) { - Element element = (Element) updates.get(i); - MUpdate update = buildUpdate(); - init(update); - setAttributes(update, element); - parent.addChild(MetadataType.UPDATE, update); - Element child = element.getChild(CONTAINER_UPDATE_TYPE); - if (child != null) { - processUpdateType(update, child); - } - } - } - - private void processUpdateType(MUpdate parent, Element container) { - List updateFields = container.getChildren(ELEMENT_UPDATETYPE); - for (int i = 0; i < updateFields.size(); i++) { - Element element = (Element) updateFields.get(i); - MUpdateType updateType = buildUpdateType(); - parent.addChild(MetadataType.UPDATE_TYPE, updateType); - setAttributes(updateType, element); - } - } - - private void processForeignKey(MSystem system, Element container) { - List fkeys = container.getChildren("ForeignKey"); - for (int i = 0; i < fkeys.size(); i++) { - Element element = (Element) fkeys.get(i); - MForeignKey foreignKey = buildForeignKey(); - setAttributes(foreignKey, element); - system.addChild(MetadataType.FOREIGNKEYS, foreignKey); - } - } - - public static final String CONTAINER_PREFIX = "METADATA-"; - - public static final String CONTAINER_ROOT = "RETS"; - - public static final String CONTAINER_METADATA = "METADATA"; - - public static final String CONTAINER_SYSTEM = "METADATA-SYSTEM"; - - public static final String CONTAINER_RESOURCE = "METADATA-RESOURCE"; - - public static final String CONTAINER_FOREIGNKEY = "METADATA-FOREIGN_KEYS"; - - public static final String CONTAINER_CLASS = "METADATA-CLASS"; - - public static final String CONTAINER_TABLE = "METADATA-TABLE"; - - public static final String CONTAINER_UPDATE = "METADATA-UPDATE"; - - public static final String CONTAINER_UPDATE_TYPE = "METADATA-UPDATE_TYPE"; - - public static final String CONTAINER_OBJECT = "METADATA-OBJECT"; - - public static final String CONTAINER_SEARCH_HELP = "METADATA-SEARCH_HELP"; - - public static final String CONTAINER_EDITMASK = "METADATA-EDITMASK"; - - public static final String CONTAINER_UPDATEHELP = "METADATA-UPDATE_HELP"; - - public static final String CONTAINER_LOOKUP = "METADATA-LOOKUP"; - - public static final String CONTAINER_LOOKUPTYPE = "METADATA-LOOKUP_TYPE"; - - public static final String CONTAINER_VALIDATIONLOOKUP = "METADATA-VALIDATION_LOOKUP"; - - public static final String CONTAINER_VALIDATIONLOOKUPTYPE = "METADATA-VALIDATION_LOOKUP_TYPE"; - - public static final String CONTAINER_VALIDATIONEXPRESSION = "METADATA-VALIDATION_EXPRESSION"; - - public static final String CONTAINER_VALIDATIONEXTERNAL = "METADATA-VALIDATION_EXTERNAL"; - - public static final String CONTAINER_VALIDATIONEXTERNALTYPE = "METADATA-VALIDATION_EXTERNAL_TYPE"; - - public static final Map sContainer2Type = new HashMap(); - static { - for (int i = 0; i < MetadataType.values().length; i++) { - MetadataType type = MetadataType.values()[i]; - sContainer2Type.put(CONTAINER_PREFIX + type.name(), type); - } - /* you have got to be kidding me. The spec (compact) says - METADATA-FOREIGNKEYS and that's the request type but the DTD says - METADATA-FOREIGN_KEY. - I think I'm going to be sick. - */ - sContainer2Type.remove(CONTAINER_PREFIX + MetadataType.FOREIGNKEYS.name()); - sContainer2Type.put(CONTAINER_FOREIGNKEY, MetadataType.FOREIGNKEYS); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaCollector.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaCollector.java deleted file mode 100644 index e824106..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaCollector.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import java.io.Serializable; - -/** Interface for Metadata objects to collect their children. */ -public interface MetaCollector extends Serializable { - /** - * @param path path to the parent object. - */ - public MetaObject[] getMetadata(MetadataType type, String path) throws MetadataException; - - public MetaObject[] getMetadataRecursive(MetadataType type, String path) throws MetadataException; -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaObject.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaObject.java deleted file mode 100644 index ed00e32..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaObject.java +++ /dev/null @@ -1,366 +0,0 @@ -package org.realtors.rets.common.metadata; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Collections; -//import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.realtors.rets.common.metadata.attrib.AttrAlphanum; -import org.realtors.rets.common.metadata.attrib.AttrBoolean; -import org.realtors.rets.common.metadata.attrib.AttrDate; -import org.realtors.rets.common.metadata.attrib.AttrNumeric; -import org.realtors.rets.common.metadata.attrib.AttrNumericPositive; -import org.realtors.rets.common.metadata.attrib.AttrPlaintext; -import org.realtors.rets.common.metadata.attrib.AttrText; -import org.realtors.rets.common.metadata.attrib.AttrVersion; -import org.realtors.rets.common.util.CaseInsensitiveTreeMap; - -public abstract class MetaObject implements Serializable { - private static final Log LOG = LogFactory.getLog(MetaObject.class); - - /** a standard parser used by different child types */ - protected static final AttrType sAlphanum = new AttrAlphanum(0, 0); - protected static final AttrType sAlphanum64 = new AttrAlphanum(1, 64); - protected static final AttrType sAlphanum32 = new AttrAlphanum(1, 32); - protected static final AttrType sAlphanum24 = new AttrAlphanum(1, 24); - protected static final AttrType sAlphanum10 = new AttrAlphanum(1, 10); - protected static final AttrType sPlaintext = new AttrPlaintext(0, 0); - protected static final AttrType sPlaintext1024 = new AttrPlaintext(1, 1024); - protected static final AttrType sPlaintext512 = new AttrPlaintext(1, 512); - protected static final AttrType sPlaintext128 = new AttrPlaintext(1, 128); - protected static final AttrType sPlaintext64 = new AttrPlaintext(1, 64); - protected static final AttrType sPlaintext32 = new AttrPlaintext(1, 32); - protected static final AttrType sText = new AttrText(0, 0); - protected static final AttrType sText1024 = new AttrText(1, 1024); - protected static final AttrType sText512 = new AttrText(1, 512); - protected static final AttrType sText256 = new AttrText(1, 256); - protected static final AttrType sText128 = new AttrText(1, 128); - protected static final AttrType sText64 = new AttrText(1, 64); - protected static final AttrType sText32 = new AttrText(1, 32); - protected static final AttrType sAttrBoolean = new AttrBoolean(); - protected static final AttrType sAttrDate = new AttrDate(); - protected static final AttrType sAttrNumeric = new AttrNumeric(); - protected static final AttrType sAttrNumericPositive = new AttrNumericPositive(); - protected static final AttrType sAttrVersion = new AttrVersion(); - protected static final AttrType sAttrMetadataEntryId = sAlphanum32; - protected static final MetadataType[] sNoChildren = new MetadataType[0]; - - protected static final AttrType retsid = sAlphanum32; - protected static final AttrType retsname = sAlphanum64; - - public static final boolean STRICT_PARSING = true; - public static final boolean LOOSE_PARSING = false; - public static final boolean DEFAULT_PARSING = LOOSE_PARSING; - - /** the metdata path to this object */ - protected String path; - /** map of child type to map of child id to child object */ - protected Map childTypes; - /** map of attribute name to attribute object (as parsed by attrtype) */ - protected Map attributes; - /** map of attribute name to AttrType parser */ - protected Map attrTypes; - - - private static Map sAttributeMapCache = new HashMap(); - private MetaCollector mCollector; - private boolean strict; - - public MetaObject(boolean strictParsing) { - this.strict = strictParsing; - if (strictParsing) { - this.attributes = new HashMap(); - } else { - this.attributes = new CaseInsensitiveTreeMap(); - } - this.attrTypes = this.getAttributeMap(strictParsing); - MetadataType[] types = getChildTypes(); - this.childTypes = new HashMap(); - for (int i = 0; i < types.length; i++) { - this.childTypes.put(types[i], null); - } - } - - private Map getAttributeMap(boolean strictParsing) { - synchronized (sAttributeMapCache) { - Map map = sAttributeMapCache.get(new CacheKey(this, strictParsing)); - if (map == null) { - if (strictParsing) { - map = new HashMap(); - } else { - map = new CaseInsensitiveTreeMap(); - } - addAttributesToMap(map); - // Let's make sure no one mucks with the map later - map = Collections.unmodifiableMap(map); - sAttributeMapCache.put(new CacheKey(this, strictParsing), map); - if (LOG.isDebugEnabled()) { - LOG.debug("Adding to attribute cache: " + this.getClass().getName() + ", " + strictParsing); - } - } - return map; - } - } - - public static void clearAttributeMapCache() { - synchronized (sAttributeMapCache) { - sAttributeMapCache.clear(); - } - } - - public Collection getChildren(MetadataType type) { - if (!this.childTypes.containsKey(type)) { - // throw new IllegalArgumentException? - return null; - } - Object o = this.childTypes.get(type); - if (o == null) { - if (!fetchChildren(type)) { - return Collections.EMPTY_SET; - } - o = this.childTypes.get(type); - } - if (o instanceof Map) { - Map m = (Map) o; - return m.values(); - } - return (Collection) o; - } - - private boolean fetchChildren(MetadataType type) { - this.childTypes.put(type, new HashMap()); - try { - MetaObject[] children = null; - if (this.mCollector != null) { - children = this.mCollector.getMetadata(type, getPath()); - } - if (children == null) { - return false; - } - for (int i = 0; i < children.length; i++) { - MetaObject child = children[i]; - addChild(type, child); - } - } catch (MetadataException e) { - LOG.error(toString() + " unable to fetch " + type.name() + " children"); - return false; - } - return true; - } - - public MetaObject getChild(MetadataType type, String id) { - if (id == null) { - return null; - } - try { - if (this.childTypes.get(type) == null && this.mCollector != null) { - if (!fetchChildren(type)) { - return null; - } - } - Map m = (Map) this.childTypes.get(type); - if (m == null) { - return null; - } - return (MetaObject) m.get(id); - } catch (ClassCastException e) { - return null; - } - } - - public Object getAttribute(String key) { - return this.attributes.get(key); - } - - public Set getKnownAttributes() { - return this.attrTypes.keySet(); - } - - public String getAttributeAsString(String key) { - Object value = this.attributes.get(key); - if (value == null) { - return null; - } - if (this.attrTypes.containsKey(key)) { - AttrType type = (AttrType) this.attrTypes.get(key); - return type.render(value); - } - return value.toString(); - } - - protected Object getTypedAttribute(String key, Class type) { - AttrType atype = (AttrType) this.attrTypes.get(key); - if (atype == null) { - return null; - } - if (atype.getType() == type) { - return this.attributes.get(key); - } - LOG.warn("type mismatch, expected " + type.getName() + " but" + " got " + atype.getType().getName()); - return null; - } - - public String getDateAttribute(String key) { - return (String) getTypedAttribute(key, String.class); - } - - public String getStringAttribute(String key) { - return (String) getTypedAttribute(key, String.class); - } - - public int getIntAttribute(String key) { - Integer i = (Integer) getTypedAttribute(key, Integer.class); - if (i == null) { - return 0; - } - return i.intValue(); - } - - public boolean getBooleanAttribute(String key) { - Boolean b = (Boolean) getTypedAttribute(key, Boolean.class); - if (b == null) { - return false; - } - return b.booleanValue(); - } - - public void setAttribute(String key, String value) { - if (value == null) { - // LOG.warning() - return; - } - if (this.attrTypes.containsKey(key)) { - AttrType type = (AttrType) this.attrTypes.get(key); - try { - this.attributes.put(key, type.parse(value,this.strict)); - } catch (MetaParseException e) { - LOG.warn(toString() + " couldn't parse attribute " + key + ", value " + value + ": " + e.getMessage()); - } - } else { - this.attributes.put(key, value); - LOG.warn("Unknown key (" + toString() + "): " + key); - } - } - - public void addChild(MetadataType type, MetaObject child) { - if (this.childTypes.containsKey(type)) { - Object obj = this.childTypes.get(type); - Map map; - if (obj == null) { - map = new HashMap(); - this.childTypes.put(type, map); - } else { - map = (Map) obj; - } - if (child == null) { - return; - } - String id = child.getId(); - - child.setPath(this.getPath()); - child.setCollector(this.mCollector); - if (id != null) { - map.put(id, child); - } - return; - } - } - - public String getId() { - String idAttr = getIdAttr(); - if (idAttr == null) { - /** cheap hack so everything's a damn map */ - return Integer.toString(hashCode()); - } - return getAttributeAsString(idAttr); - } - - public String getPath() { - return this.path; - } - - protected void setPath(String parent) { - if (parent == null || parent.equals("")) { - this.path = getId(); - } else { - this.path = parent + ":" + getId(); - } - } - - @Override - public String toString() { - ToStringBuilder tsb = new ToStringBuilder(this); - Iterator iter = getKnownAttributes().iterator(); - while (iter.hasNext()) { - String key = (String) iter.next(); - tsb.append(key, getAttributeAsString(key)); - } - return tsb.toString(); - } - - public void setCollector(MetaCollector c) { - this.mCollector = c; - Iterator iterator = this.childTypes.keySet().iterator(); - while (iterator.hasNext()) { - MetadataType type = (MetadataType) iterator.next(); - Map map = (Map) this.childTypes.get(type); - if (map == null) { - continue; - } - Collection children = map.values(); - for (Iterator iter = children.iterator(); iter.hasNext();) { - MetaObject object = (MetaObject) iter.next(); - object.setCollector(c); - } - } - } - - public abstract MetadataType[] getChildTypes(); - - protected abstract String getIdAttr(); - - /** - * Adds attributes to an attribute map. This is called by the MetaObject - * constructor to initialize a map of atributes. This map may be cached, - * so this method may not be called for every object construction. - * - * @param attributeMap Map to add attributes to - */ - protected abstract void addAttributesToMap(Map attributeMap); - -} - -class CacheKey { - private Class mClass; - private boolean strictParsing; - - public CacheKey(MetaObject metaObject, boolean strictParsing) { - this.mClass = metaObject.getClass(); - this.strictParsing = strictParsing; - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof CacheKey)) { - return false; - } - CacheKey rhs = (CacheKey) obj; - return new EqualsBuilder().append(this.mClass, rhs.mClass).append(this.strictParsing, rhs.strictParsing).isEquals(); - } - - @Override - public int hashCode() { - return new HashCodeBuilder().append(this.mClass).append(this.strictParsing).toHashCode(); - } - -} - diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaParseException.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaParseException.java deleted file mode 100644 index 7b83bc1..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetaParseException.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -public class MetaParseException extends MetadataException { - public MetaParseException() { - super(); - } - - public MetaParseException(String msg) { - super(msg); - } - - public MetaParseException(Throwable cause) { - super(cause); - } - - public MetaParseException(String msg, Throwable cause) { - super(msg, cause); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/Metadata.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/Metadata.java deleted file mode 100644 index 5c6fcea..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/Metadata.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.realtors.rets.common.metadata; - -import java.io.Serializable; - -import org.realtors.rets.common.metadata.types.MSystem; -import org.realtors.rets.common.metadata.types.MResource; -import org.realtors.rets.common.metadata.types.MForeignKey; -import org.realtors.rets.common.metadata.types.MClass; -import org.realtors.rets.common.metadata.types.MTable; -import org.realtors.rets.common.metadata.types.MUpdate; -import org.realtors.rets.common.metadata.types.MUpdateType; -import org.realtors.rets.common.metadata.types.MObject; -import org.realtors.rets.common.metadata.types.MValidationExternal; -import org.realtors.rets.common.metadata.types.MValidationLookup; -import org.realtors.rets.common.metadata.types.MLookup; -import org.realtors.rets.common.metadata.types.MSearchHelp; - -public class Metadata implements Serializable { - - protected MSystem system; - - public Metadata(MetaCollector collector) throws MetadataException { - MetaObject[] sys = collector.getMetadata(MetadataType.SYSTEM, null); - if (sys != null && sys.length == 1) { - try { - this.system = (MSystem) sys[0]; - } catch (ClassCastException e) { - throw new MetadataException(e); - } - this.system.setCollector(collector); - } - } - - public Metadata(MSystem system) { - this.system = system; - } - - public MSystem getSystem() { - return this.system; - } - - public MResource getResource(String resourceId) { - return this.system.getMResource(resourceId); - } - - public MForeignKey getForeignKey(String foreignKeyId) { - return this.system.getMForeignKey(foreignKeyId); - } - - public MClass getMClass(String resourceId, String className) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMClass(className); - } - - public MTable getTable(String resourceId, String className, String systemName) { - MClass clazz = getMClass(resourceId, className); - if (clazz == null) { - return null; - } - return clazz.getMTable(systemName); - } - - public MUpdate getUpdate(String resourceId, String className, String updateName) { - MClass clazz = getMClass(resourceId, className); - if (clazz == null) { - return null; - } - return clazz.getMUpdate(updateName); - } - - public MUpdateType getUpdateType(String resourceId, String className, String updateName, String systemName) { - MUpdate update = getUpdate(resourceId, className, updateName); - if (update == null) { - return null; - } - return update.getMUpdateType(systemName); - } - - public MObject getObject(String resourceId, String objectType) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMObject(objectType); - } - - public MLookup getLookup(String resourceId, String lookupName) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMLookup(lookupName); - } - - public MSearchHelp getSearchHelp(String resourceId, String searchHelpId) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMSearchHelp(searchHelpId); - } - - public MValidationExternal getValidationExternal(String resourceId, String validationExternalName) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMValidationExternal(validationExternalName); - } - - public MValidationLookup getValidationLookup(String resourceId, String validationLookupName) { - MResource resource = getResource(resourceId); - if (resource == null) { - return null; - } - return resource.getMValidationLookup(validationLookupName); - } - - private String getResourceId(MetaObject obj) { - String path = obj.getPath(); - int index = path.indexOf(':'); - if (index == -1) { - return null; - } - String resource = path.substring(0, index); - return resource; - } - - public MResource getResource(MTable field) { - String resource = getResourceId(field); - return getResource(resource); - } - - public MLookup getLookup(MTable field) { - String resource = getResourceId(field); - return getLookup(resource, field.getLookupName()); - } - - public MSearchHelp getSearchHelp(MTable field) { - String searchHelpID = field.getSearchHelpID(); - if (searchHelpID == null) { - return null; - } - String resource = getResourceId(field); - return getSearchHelp(resource, searchHelpID); - } - - public MResource getResource(MClass clazz) { - return getResource(getResourceId(clazz)); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataBuilder.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataBuilder.java deleted file mode 100644 index e8085b8..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataBuilder.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import org.realtors.rets.common.metadata.types.MClass; -import org.realtors.rets.common.metadata.types.MEditMask; -import org.realtors.rets.common.metadata.types.MForeignKey; -import org.realtors.rets.common.metadata.types.MLookup; -import org.realtors.rets.common.metadata.types.MLookupType; -import org.realtors.rets.common.metadata.types.MObject; -import org.realtors.rets.common.metadata.types.MResource; -import org.realtors.rets.common.metadata.types.MSearchHelp; -import org.realtors.rets.common.metadata.types.MSystem; -import org.realtors.rets.common.metadata.types.MTable; -import org.realtors.rets.common.metadata.types.MUpdate; -import org.realtors.rets.common.metadata.types.MUpdateHelp; -import org.realtors.rets.common.metadata.types.MUpdateType; -import org.realtors.rets.common.metadata.types.MValidationExpression; -import org.realtors.rets.common.metadata.types.MValidationExternal; -import org.realtors.rets.common.metadata.types.MValidationExternalType; -import org.realtors.rets.common.metadata.types.MValidationLookup; -import org.realtors.rets.common.metadata.types.MValidationLookupType; - -public abstract class MetadataBuilder { - protected MetadataBuilder() { - this.mStrict = false; - } - - public boolean isStrict() { - return this.mStrict; - } - - public void setStrict(boolean strict) { - this.mStrict = strict; - } - - protected Metadata finish(MSystem system) { - return new Metadata(system); - } - - protected static void setAttribute(MetaObject obj, String key, String value) { - obj.setAttribute(key, value); - } - - protected MSystem buildSystem() { - MSystem system = new MSystem(this.mStrict); - return system; - } - - protected MResource buildResource() { - MResource resource = new MResource(this.mStrict); - return resource; - } - - protected MForeignKey buildForeignKey() { - MForeignKey key = new MForeignKey(this.mStrict); - return key; - } - - protected MClass buildClass() { - MClass clazz = new MClass(this.mStrict); - return clazz; - } - - protected MTable buildTable() { - MTable table = new MTable(this.mStrict); - return table; - } - - protected MUpdate buildUpdate() { - MUpdate update = new MUpdate(this.mStrict); - return update; - } - - protected MUpdateType buildUpdateType() { - MUpdateType updatetype = new MUpdateType(this.mStrict); - return updatetype; - } - - protected MObject buildObject() { - MObject obj = new MObject(this.mStrict); - return obj; - } - - protected MSearchHelp buildSearchHelp() { - MSearchHelp help = new MSearchHelp(this.mStrict); - return help; - } - - protected MEditMask buildEditMask() { - MEditMask mask = new MEditMask(this.mStrict); - return mask; - } - - protected MLookup buildLookup() { - MLookup lookup = new MLookup(this.mStrict); - return lookup; - } - - protected MLookupType buildLookupType() { - MLookupType type = new MLookupType(this.mStrict); - return type; - } - - protected MUpdateHelp buildUpdateHelp() { - MUpdateHelp help = new MUpdateHelp(this.mStrict); - return help; - } - - protected MValidationLookup buildValidationLookup() { - MValidationLookup lookup = new MValidationLookup(this.mStrict); - return lookup; - } - - protected MValidationExternalType buildValidationExternalType() { - MValidationExternalType type = new MValidationExternalType(this.mStrict); - return type; - } - - protected MValidationExpression buildValidationExpression() { - MValidationExpression expression = new MValidationExpression(this.mStrict); - return expression; - } - - protected MValidationExternal buildValidationExternal() { - MValidationExternal external = new MValidationExternal(this.mStrict); - return external; - } - - protected MValidationLookupType buildValidationLookupType() { - MValidationLookupType lookupType = new MValidationLookupType(this.mStrict); - return lookupType; - } - - public abstract Metadata doBuild(Object src) throws MetadataException; - - public abstract MetaObject[] parse(Object src) throws MetadataException; - - protected MetaObject newType(MetadataType type) { - if (type == MetadataType.SYSTEM) { - return buildSystem(); - } - if (type == MetadataType.RESOURCE) { - return buildResource(); - } - if (type == MetadataType.FOREIGNKEYS) { - return buildForeignKey(); - } - if (type == MetadataType.CLASS) { - return buildClass(); - } - if (type == MetadataType.TABLE) { - return buildTable(); - } - if (type == MetadataType.UPDATE) { - return buildUpdate(); - } - if (type == MetadataType.UPDATE_TYPE) { - return buildUpdateType(); - } - if (type == MetadataType.OBJECT) { - return buildObject(); - } - if (type == MetadataType.SEARCH_HELP) { - return buildSearchHelp(); - } - if (type == MetadataType.EDITMASK) { - return buildEditMask(); - } - if (type == MetadataType.UPDATE_HELP) { - return buildUpdateHelp(); - } - if (type == MetadataType.LOOKUP) { - return buildLookup(); - } - if (type == MetadataType.LOOKUP_TYPE) { - return buildLookupType(); - } - if (type == MetadataType.VALIDATION_LOOKUP) { - return buildValidationLookup(); - } - if (type == MetadataType.VALIDATION_LOOKUP_TYPE) { - return buildValidationLookupType(); - } - if (type == MetadataType.VALIDATION_EXTERNAL) { - return buildValidationExternal(); - } - if (type == MetadataType.VALIDATION_EXTERNAL_TYPE) { - return buildValidationExternalType(); - } - if (type == MetadataType.VALIDATION_EXPRESSION) { - return buildValidationExpression(); - } - throw new RuntimeException("No metadata type class found for " + type.name()); - } - - private boolean mStrict; -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataElement.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataElement.java deleted file mode 100644 index b517251..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataElement.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.realtors.rets.common.metadata; - -public enum MetadataElement { - SYSTEM("System"),// might need to provide enumeration for different versions 1.5 vs 1.7 - RESOURCE("Resource"), - FOREIGNKEY("ForeignKey"), - CLASS("Class"), - TABLE("Field"), - UPDATE("UpdateType"), - UPDATETYPE("UpdateField"), - OBJECT("Object"), - SEARCHHELP("SearchHelp"), - EDITMASK("EditMask"), - UPDATEHELP("UpdateHelp"), - LOOKUP("Lookup"), - LOOKUPTYPE("LookupType"), - VALIDATIONLOOKUP("ValidationLookup"), - VALIDATIONLOOKUPTYPE("ValidationLookupType"), - VALIDATIONEXPRESSION("ValidationExpression"), - VALIDATIONEXTERNAL("ValidationExternalType"), - VALIDATIONEXTERNALTYPE("ValidationExternal"); - - private final String elementName; - - MetadataElement(String elementName){ - this.elementName = elementName; - } - - public String elementName(){ return this.elementName;} - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataException.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataException.java deleted file mode 100644 index 3d8d3ee..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataException.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -import org.apache.commons.lang.exception.NestableException; - -public class MetadataException extends NestableException { - public MetadataException() { - super(); - } - - public MetadataException(String msg) { - super(msg); - } - - public MetadataException(Throwable cause) { - super(cause); - } - - public MetadataException(String msg, Throwable cause) { - super(msg, cause); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataType.java deleted file mode 100644 index f37d7a5..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/MetadataType.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata; - -public enum MetadataType { - EDITMASK, - FOREIGNKEYS, - RESOURCE, - LOOKUP, - LOOKUP_TYPE, - OBJECT, - SEARCH_HELP, - SYSTEM, - TABLE, - UPDATE, - UPDATE_HELP, - UPDATE_TYPE, - VALIDATION_EXPRESSION, - VALIDATION_EXTERNAL, - VALIDATION_EXTERNAL_TYPE, - VALIDATION_LOOKUP, - VALIDATION_LOOKUP_TYPE, - CLASS; - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAbstractText.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAbstractText.java deleted file mode 100644 index eb32065..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAbstractText.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -public abstract class AttrAbstractText implements AttrType { - protected int min; - protected int max; - - public AttrAbstractText(int min, int max) { - this.min = min; - this.max = max; - } - - - public String parse(String value, boolean strict) throws MetaParseException { - if( !strict ) - return value; - int l = value.length(); - if (this.min != 0 && l < this.min) { - throw new MetaParseException("Value too short (min " + this.min + "): " + l); - } - if (this.max != 0 && l > this.max) { - throw new MetaParseException("Value too long (max " + this.max + "): " + l); - } - checkContent(value); - return value; - } - - - public Class getType() { - return String.class; - } - - - public String render(String value) { - return value; - } - - protected abstract void checkContent(String value) throws MetaParseException; - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAlphanum.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAlphanum.java deleted file mode 100644 index 3a2e721..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrAlphanum.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrAlphanum extends AttrAbstractText { - - public AttrAlphanum(int min, int max) { - super(min, max); - } - - @Override - protected void checkContent(String value) throws MetaParseException { - char[] chars = value.toCharArray(); - for (int i = 0; i < chars.length; i++) { - char c = chars[i]; - if (!Character.isLetterOrDigit(c)) { - // illegal but exist in CRT metadata - if ("_- ".indexOf(c) == -1) { - throw new MetaParseException("Invalid Alphanum character at position " + i + ": " + c); - } - } - } - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrBoolean.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrBoolean.java deleted file mode 100644 index cba0304..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrBoolean.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrBoolean implements AttrType { - public Boolean parse(String value, boolean strict) throws MetaParseException { - if (value.equals("1")) { - return Boolean.TRUE; - } - if (value.equals("0")) { - return Boolean.FALSE; - } - - if (value.equalsIgnoreCase("true")) { - return Boolean.TRUE; - } - if (value.equalsIgnoreCase("false")) { - return Boolean.FALSE; - } - - if (value.equalsIgnoreCase("Y")) { - return Boolean.TRUE; - } - if (value.equalsIgnoreCase("N")) { - return Boolean.FALSE; - } - - if (value.equals("")) { - return Boolean.FALSE; - } - - if( strict ) - throw new MetaParseException("Invalid boolean value: " + value); - return false; - } - - public String render(Boolean value) { - if( value.booleanValue() ) return "1"; - - return "0"; - } - - public Class getType() { - return Boolean.class; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrDate.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrDate.java deleted file mode 100644 index 62e947f..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrDate.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - * - * - * Vangulo Changed: - * gives ability to handle dates in this format - * 2011-06-01T18:06:58 - * should find a more elegant way - */ -package org.realtors.rets.common.metadata.attrib; - -//import java.text.DateFormat; -//import java.text.ParseException; -//import java.text.SimpleDateFormat; -//import java.util.Date; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -/** - * Converted this class to return a String instead of a - * Date object which allows for more flexiblity since - * Many Rets Servers format their dates differently - * - * @author vangulo - * - */ -public class AttrDate implements AttrType { - - // need date attribute to be flexible since different MLS's have - // different formats for dates - public String parse(String value, boolean strict) throws MetaParseException { - return value; -// Date d; -// try { -// d = this.df.parse(value); -// } catch (ParseException e) { -// if( strict ) -// throw new MetaParseException(e); -// try { -// value = value.replaceAll("[A-Za-z]", " "); -// d = this.df1.parse(value); -// } catch (ParseException e1) { -// //e1.printStackTrace(); -// return value; -// } -// return d; -// } -// return d; - } - - public String render(String value) { - return value; - //Date date = value; - //return this.df.format(date); - } - - public Class getType() { - return String.class; - } - - //private DateFormat df = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss z"); - //2011-06-01T18:06:58 - //private DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //Tuesday, 22-Dec-2009 21:03:18 GMT - //private DateFormat df2 = new SimpleDateFormat("E, dd-MMM-yyyy HH:mm:ss z"); -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrEnum.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrEnum.java deleted file mode 100644 index 3aa12f3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrEnum.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import java.util.HashMap; -import java.util.Map; -import java.util.Collections; - -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrEnum extends AttrAbstractText { - public AttrEnum(String[] values) { - super(0, 0); - this.map = new HashMap(); - for (String value : values) this.map.put(value, value); - this.map = Collections.unmodifiableMap(this.map); - } - - @Override - protected void checkContent(String value) throws MetaParseException { - if( !this.map.containsKey(value) ) - throw new MetaParseException("Invalid key: " + value); - } - - private Map map; -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrGenericText.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrGenericText.java deleted file mode 100644 index 48247dd..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrGenericText.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.attrib.AttrAbstractText; -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrGenericText extends AttrAbstractText { - private String mChars; - - public AttrGenericText(int min, int max, String chars) { - super(min, max); - this.mChars = chars; - } - - @Override - protected void checkContent(String value) throws MetaParseException { - char[] chars = value.toCharArray(); - for (int i = 0; i < chars.length; i++) { - char c = chars[i]; - if (this.mChars.indexOf(c) == -1) { - throw new MetaParseException("Invalid char (" + c + ") at position " + i); - } - } - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumeric.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumeric.java deleted file mode 100644 index 55806aa..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumeric.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrNumeric implements AttrType { - public Integer parse(String value, boolean strict) throws MetaParseException { - try { - return new Integer(value); - } catch (NumberFormatException e) { - if( strict ) - throw new MetaParseException(e); - return 0; - } - } - - public String render(Integer value) { - return value.toString(); - } - - public Class getType() { - return Integer.class; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumericPositive.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumericPositive.java deleted file mode 100644 index 2359476..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrNumericPositive.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrNumericPositive implements AttrType { - - public Integer parse(String value, boolean strict) throws MetaParseException { - try { - Integer integer = new Integer(value); - if (strict && integer < 1) throw new IllegalArgumentException(String.format("%s is not positive", value)); - return integer; - } catch (Exception e) { - if( strict ) - throw new MetaParseException(e); - return 1; - } - } - - - public String render(Integer value) { - return value.toString(); - } - - - public Class getType() { - return Integer.class; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrPlaintext.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrPlaintext.java deleted file mode 100644 index b73d7fd..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrPlaintext.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrPlaintext extends AttrAbstractText { - public AttrPlaintext(int min, int max) { - super(min, max); - } - - @Override - protected void checkContent(String value) throws MetaParseException { - char[] chars = value.toCharArray(); - for (int i = 0; i < chars.length; i++) { - char c = chars[i]; - if (c < 31 || c > 126) { - throw new MetaParseException("Invalid character (ordinal " + (int) c + ") at position " + i); - } - } - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrText.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrText.java deleted file mode 100644 index d0b7ba3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrText.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.realtors.rets.common.metadata.MetaParseException; - -public class AttrText extends AttrAbstractText { - public AttrText(int min, int max) { - super(min, max); - } - - @Override - protected void checkContent(String value) throws MetaParseException { - char[] chars = value.toCharArray(); - for (int i = 0; i < chars.length; i++) { - char c = chars[i]; - if (!(c == '\n' || c == '\r' || c == ' ' || c == '\t' || (c > 31 && c < 127))) { - throw new MetaParseException("Invalid character (ordinal " + (int) c + ") at position " + i); - } - } - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrVersion.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrVersion.java deleted file mode 100644 index 66b997b..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/attrib/AttrVersion.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * cart: CRT's Awesome RETS Tool - * - * Author: David Terrell - * Copyright (c) 2003, The National Association of REALTORS - * Distributed under a BSD-style license. See LICENSE.TXT for details. - */ -package org.realtors.rets.common.metadata.attrib; - -import org.apache.commons.lang.StringUtils; -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaParseException; - -/** - * A version is a string formatted "major.minor.release". This gets converted - * to an integer such as major * 10,000,000 + minor * 100,000 + release. - */ -public class AttrVersion implements AttrType { - - public Integer parse(String value, boolean strict) throws MetaParseException { - String[] parts = StringUtils.split(value, "."); - int major, minor, release; - if (strict && parts != null && parts.length != 3) { - throw new MetaParseException("Invalid version: " + value + ", " + parts.length + " parts"); - } - try { - major = Integer.parseInt(this.getPart(parts,0)); - minor = Integer.parseInt(this.getPart(parts,1)); - release = Integer.parseInt(this.getPart(parts,2)); - } catch (NumberFormatException e) { - throw new MetaParseException("Invalid version: " + value, e); - } - if ((major < 100) && (major >= 0) && (minor < 100) && (minor >= 0) && (release < 100000) && (release >= 0)) { - return new Integer(major * 10000000 + minor * 100000 + release); - } - if( strict ) - throw new MetaParseException("Invalid version: " + value); - return 0; - } - private String getPart(String[] parts, int part){ - if( parts != null && parts.length > part ) return parts[part]; - return "0"; - } - - - public String render(Integer value) { - int ver = value.intValue(); - int release = ver % 100000; - int minor = (ver / 100000) % 100; - int major = (ver / 10000000); - String minstr = Integer.toString(minor); - String relstr = Integer.toString(release); - while (minstr.length() < 2) { - minstr = "0" + minstr; - } - while (relstr.length() < 5) { - relstr = "0" + relstr; - } - return major + "." + minstr + "." + relstr; - } - - - public Class getType() { - return Integer.class; - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MClass.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MClass.java deleted file mode 100644 index 408aea8..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MClass.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Collection; -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MClass extends MetaObject { - public static final String CLASSNAME = "ClassName"; - public static final String VISIBLENAME = "VisibleName"; - public static final String STANDARDNAME = "StandardName"; - public static final String DESCRIPTION = "Description"; - public static final String TABLEVERSION = "TableVersion"; - public static final String TABLEDATE = "TableDate"; - public static final String UPDATEVERSION = "UpdateVersion"; - public static final String UPDATEDATE = "UpdateDate"; - public static final String DELETEDFLAGFIELD = "DeletedFlagField"; - public static final String DELETEDFLAGVALUE = "DeletedFlagValue"; - public static final String CLASSTIMESTAMP = "ClassTimeStamp"; - public static final String HASHKEYINDEX = "HasKeyIndex"; - private static MetadataType[] sTypes = { MetadataType.UPDATE, MetadataType.TABLE }; - - public MClass() { - this(DEFAULT_PARSING); - } - - public MClass(boolean strictParsing) { - super(strictParsing); - } - - @Override - public MetadataType[] getChildTypes() { - return sTypes; - } - - public String getClassName() { - return getStringAttribute(CLASSNAME); - } - - public String getVisibleName() { - return getStringAttribute(VISIBLENAME); - } - - public String getStandardName() { - return getStringAttribute(STANDARDNAME); - } - - public String getDescription() { - return getStringAttribute(DESCRIPTION); - } - - public int getTableVersion() { - return getIntAttribute(TABLEVERSION); - } - - public String getTableDate() { - return getDateAttribute(TABLEDATE); - } - - public int getUpdateVersion() { - return getIntAttribute(UPDATEVERSION); - } - - public String getUpdateDate() { - return getDateAttribute(UPDATEDATE); - } - - public MUpdate getMUpdate(String updateName) { - return (MUpdate) getChild(MetadataType.UPDATE, updateName); - } - - public MUpdate[] getMUpdates() { - MUpdate[] tmpl = new MUpdate[0]; - return (MUpdate[]) getChildren(MetadataType.UPDATE).toArray(tmpl); - } - - public MTable getMTable(String systemName) { - return (MTable) getChild(MetadataType.TABLE, systemName); - } - - public MTable[] getMTables() { - Collection children = getChildren(MetadataType.TABLE); - return (MTable[]) children.toArray(new MTable[0]); - } - - @Override - protected String getIdAttr() { - return CLASSNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(CLASSNAME, sAlphanum32); - attributeMap.put(VISIBLENAME, sPlaintext32); - attributeMap.put(STANDARDNAME, sAlphanum32); - attributeMap.put(DESCRIPTION, sPlaintext128); - attributeMap.put(TABLEVERSION, sAttrVersion); - attributeMap.put(TABLEDATE, sAttrDate); - attributeMap.put(UPDATEVERSION, sAttrVersion); - attributeMap.put(UPDATEDATE, sAttrDate); - attributeMap.put(DELETEDFLAGFIELD, retsname); - attributeMap.put(DELETEDFLAGVALUE, sAlphanum32); - attributeMap.put(CLASSTIMESTAMP, retsname); - attributeMap.put(HASHKEYINDEX, sAttrBoolean); - } - - - public String getDeletedFlagField() { - return getStringAttribute(DELETEDFLAGFIELD); - } - - public String getDeletedFlagValue() { - return getStringAttribute(DELETEDFLAGVALUE); - } - - public String getClassTimeStamp() { - return getStringAttribute(CLASSTIMESTAMP); - } - - public String getHashKeyIndex() { - return getStringAttribute(HASHKEYINDEX); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MEditMask.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MEditMask.java deleted file mode 100644 index 2efca83..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MEditMask.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MEditMask extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String EDITMASKID = "EditMaskID"; - public static final String VALUE = "Value"; - - public MEditMask() { - this(DEFAULT_PARSING); - } - - public MEditMask(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getEditMaskID() { - return getStringAttribute(EDITMASKID); - } - - public String getValue() { - return getStringAttribute(VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return EDITMASKID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(EDITMASKID, sAlphanum32); - attributeMap.put(VALUE, sText256); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MForeignKey.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MForeignKey.java deleted file mode 100644 index a6e3b8e..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MForeignKey.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MForeignKey extends MetaObject { - public static final String FOREIGNKEYID = "ForeignKeyID"; - public static final String PARENTRESOURCEID = "ParentResourceID"; - public static final String PARENTCLASSID = "ParentClassID"; - public static final String PARENTSYSTEMNAME = "ParentSystemName"; - public static final String CHILDRESOURCEID = "ChildResourceID"; - public static final String CHILDCLASSID = "ChildClassID"; - public static final String CHILDSYSTEMNAME = "ChildSystemName"; - public static final String CONDITIONALPARENTFIELD = "ConditionalParentField"; - public static final String CONDITIONALPARENTVALUE = "ConditionalParentValue"; - - - public MForeignKey() { - this(DEFAULT_PARSING); - } - - public MForeignKey(boolean strictParsing) { - super(strictParsing); - } - - public String getForeignKeyID() { - return getStringAttribute(FOREIGNKEYID); - } - - public String getParentResourceID() { - return getStringAttribute(PARENTRESOURCEID); - } - - public String getParentClassID() { - return getStringAttribute(PARENTCLASSID); - } - - public String getParentSystemName() { - return getStringAttribute(PARENTSYSTEMNAME); - } - - public String getChildResourceID() { - return getStringAttribute(CHILDRESOURCEID); - } - - public String getChildClassID() { - return getStringAttribute(CHILDCLASSID); - } - - public String getChildSystemName() { - return getStringAttribute(CHILDSYSTEMNAME); - } - - public String getConditionalParentField() { - return getStringAttribute(CONDITIONALPARENTFIELD); - } - - public String getConditionalParentValue() { - return getStringAttribute(CONDITIONALPARENTVALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return FOREIGNKEYID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(FOREIGNKEYID, sAlphanum32); - attributeMap.put(PARENTRESOURCEID, sAlphanum32); - attributeMap.put(PARENTCLASSID, sAlphanum32); - attributeMap.put(PARENTSYSTEMNAME, sAlphanum32); - attributeMap.put(CHILDRESOURCEID, sAlphanum32); - attributeMap.put(CHILDCLASSID, sAlphanum32); - attributeMap.put(CHILDSYSTEMNAME, sAlphanum32); - attributeMap.put(CONDITIONALPARENTFIELD, retsname); - attributeMap.put(CONDITIONALPARENTVALUE, retsname); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookup.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookup.java deleted file mode 100644 index 3204b54..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookup.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MLookup extends MetaObject { - private static final MetadataType[] CHILDREN = { MetadataType.LOOKUP_TYPE }; - private static final MLookupType[] EMPTYLOOKUPTYPES = {}; - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String LOOKUPNAME = "LookupName"; - public static final String VISIBLENAME = "VisibleName"; - public static final String VERSION = "Version"; - public static final String DATE = "Date"; - public static final String LOOKUPTYPEVERSION = "LookupTypeVersion"; - public static final String LOOKUPTYPEDATE = "LookupTypeDate"; - - public MLookup() { - this(DEFAULT_PARSING); - } - - public MLookup(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getLookupName() { - return getStringAttribute(LOOKUPNAME); - } - - public String getVisibleName() { - return getStringAttribute(VISIBLENAME); - } - - public int getVersion() { - - int ver = getIntAttribute(VERSION); - if (ver == 0){ - ver = getIntAttribute(LOOKUPTYPEVERSION); - } - return ver; - } - - public String getDate() { - String date = getDateAttribute(DATE); - if (date == null) { - date = getDateAttribute(LOOKUPTYPEDATE); - } - return date; - } - - public MLookupType getMLookupType(String value) { - return (MLookupType) getChild(MetadataType.LOOKUP_TYPE, value); - } - - public MLookupType[] getMLookupTypes() { - return (MLookupType[]) getChildren(MetadataType.LOOKUP_TYPE).toArray(EMPTYLOOKUPTYPES); - } - - @Override - public MetadataType[] getChildTypes() { - return CHILDREN; - } - - @Override - protected String getIdAttr() { - return LOOKUPNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(LOOKUPNAME, sAlphanum32); - attributeMap.put(VISIBLENAME, sPlaintext32); - attributeMap.put(VERSION, sAttrVersion); - attributeMap.put(DATE, sAttrDate); - attributeMap.put(LOOKUPTYPEVERSION, sAttrVersion); - attributeMap.put(LOOKUPTYPEDATE, sAttrDate); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookupType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookupType.java deleted file mode 100644 index c4af351..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MLookupType.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MLookupType extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String LONGVALUE = "LongValue"; - public static final String SHORTVALUE = "ShortValue"; - public static final String VALUE = "Value"; - - public MLookupType() { - this(DEFAULT_PARSING); - } - - public MLookupType(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getLongValue() { - return getStringAttribute(LONGVALUE); - } - - public String getShortValue() { - return getStringAttribute(SHORTVALUE); - } - - public String getValue() { - return getStringAttribute(VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return VALUE; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(LONGVALUE, sText128); - attributeMap.put(SHORTVALUE, sText32); - attributeMap.put(VALUE, sAlphanum32); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MObject.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MObject.java deleted file mode 100644 index c8d027c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MObject.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MObject extends MetaObject { - - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String OBJECTTYPE = "ObjectType"; - public static final String MIMETYPE = "MimeType"; - public static final String VISIBLENAME = "VisibleName"; - public static final String DESCRIPTION = "Description"; - public static final String OBJECTTIMESTAMPNAME = "ObjectTimeStamp"; - public static final String OBJECTCOUNT = "ObjectCount"; - public static final String STANDARDNAME = "StandardName"; - public MObject() { - this(DEFAULT_PARSING); - } - - public MObject(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getObjectType() { - return getStringAttribute(OBJECTTYPE); - } - - public String getMIMEType() { - return getStringAttribute(MIMETYPE); - } - - public String getVisibleName() { - return getStringAttribute(VISIBLENAME); - } - - public String getDescription() { - return getStringAttribute(DESCRIPTION); - } - public String getStandardName() { - return getStringAttribute(STANDARDNAME); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return OBJECTTYPE; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAlphanum24); - attributeMap.put(OBJECTTYPE, sAlphanum24); - attributeMap.put(MIMETYPE, sText64); - attributeMap.put(VISIBLENAME, sPlaintext64); - attributeMap.put(DESCRIPTION, sPlaintext128); - attributeMap.put(OBJECTTIMESTAMPNAME, retsname); - attributeMap.put(OBJECTCOUNT, retsname); - attributeMap.put(STANDARDNAME, retsname); - } - - public String getObjectTimeStampName() { - return getStringAttribute(OBJECTTIMESTAMPNAME); - } - - public String getObjectCount() { - return getStringAttribute(OBJECTCOUNT); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MResource.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MResource.java deleted file mode 100644 index 8cd1ed3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MResource.java +++ /dev/null @@ -1,270 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MResource extends MetaObject { - private static final MetadataType[] CHILDREN = { - MetadataType.VALIDATION_EXPRESSION, - MetadataType.LOOKUP, - MetadataType.CLASS, - MetadataType.OBJECT, - MetadataType.VALIDATION_EXTERNAL, - MetadataType.VALIDATION_LOOKUP, - MetadataType.EDITMASK, - MetadataType.UPDATE_HELP, - MetadataType.SEARCH_HELP - }; - - public static final String RESOURCEID = "ResourceID"; - public static final String STANDARDNAME = "StandardName"; - public static final String VISIBLENAME = "VisibleName"; - public static final String DESCRIPTION = "Description"; - public static final String KEYFIELD = "KeyField"; - public static final String CLASSCOUNT = "ClassCount"; - public static final String CLASSVERSION = "ClassVersion"; - public static final String CLASSDATE = "ClassDate"; - public static final String OBJECTVERSION = "ObjectVersion"; - public static final String OBJECTDATE = "ObjectDate"; - public static final String SEARCHHELPVERSION = "SearchHelpVersion"; - public static final String SEARCHHELPDATE = "SearchHelpDate"; - public static final String EDITMASKVERSION = "EditMaskVersion"; - public static final String EDITMASKDATE = "EditMaskDate"; - public static final String LOOKUPVERSION = "LookupVersion"; - public static final String LOOKUPDATE = "LookupDate"; - public static final String UPDATEHELPVERSION = "UpdateHelpVersion"; - public static final String UPDATEHELPDATE = "UpdateHelpDate"; - public static final String VALIDATIONEXPRESSIONVERSION = "ValidationExpressionVersion"; - public static final String VALIDATIONEXPRESSIONDATE = "ValidationExpressionDate"; - public static final String VALIDATIONLOOKUPVERSION = "ValidationLookupVersion"; - public static final String VALIDATIONLOOKUPDATE = "ValidationLookupDate"; - public static final String VALIDATIONEXTERNALVERSION = "ValidationExternalVersion"; - public static final String VALIDATIONEXTERNALDATE = "ValidationExternalDate"; - - public MResource() { - this(DEFAULT_PARSING); - } - - public MResource(boolean strictParsing) { - super(strictParsing); - } - - public String getResourceID() { - return getStringAttribute(RESOURCEID); - } - - public String getStandardName() { - return getStringAttribute(STANDARDNAME); - } - - public String getVisibleName() { - return getStringAttribute(VISIBLENAME); - } - - public String getDescription() { - return getStringAttribute(DESCRIPTION); - } - - public String getKeyField() { - return getStringAttribute(KEYFIELD); - } - - public int getClassCount() { - return getIntAttribute(CLASSCOUNT); - } - - public int getClassVersion() { - return getIntAttribute(CLASSVERSION); - } - - public String getClassDate() { - return getDateAttribute(CLASSDATE); - } - - public int getObjectVersion() { - return getIntAttribute(OBJECTVERSION); - } - - public String getObjectDate() { - return getDateAttribute(OBJECTDATE); - } - - public int getSearchHelpVersion() { - return getIntAttribute(SEARCHHELPVERSION); - } - - public String getSearchHelpDate() { - return getDateAttribute(SEARCHHELPDATE); - } - - public int getEditMaskVersion() { - return getIntAttribute(EDITMASKVERSION); - } - - public String getEditMaskDate() { - return getDateAttribute(EDITMASKDATE); - } - - public int getLookupVersion() { - return getIntAttribute(LOOKUPVERSION); - } - - public String getLookupDate() { - return getDateAttribute(LOOKUPDATE); - } - - public int getUpdateHelpVersion() { - return getIntAttribute(UPDATEHELPVERSION); - } - - public String getUpdateHelpDate() { - return getDateAttribute(UPDATEHELPDATE); - } - - public int getValidationExpressionVersion() { - return getIntAttribute(VALIDATIONEXPRESSIONVERSION); - } - - public String getValidationExpressionDate() { - return getDateAttribute(VALIDATIONEXPRESSIONDATE); - } - - public int getValidationLookupVersion() { - return getIntAttribute(VALIDATIONLOOKUPVERSION); - } - - public String getValidationLookupDate() { - return getDateAttribute(VALIDATIONLOOKUPDATE); - } - - public int getValidationExternalVersion() { - return getIntAttribute(VALIDATIONEXTERNALVERSION); - } - - public String getValidationExternalDate() { - return getDateAttribute(VALIDATIONEXTERNALDATE); - } - - public MValidationExpression getMValidationExpression(String validationExpressionID) { - return (MValidationExpression) getChild(MetadataType.VALIDATION_EXPRESSION, validationExpressionID); - } - - public MValidationExpression[] getMValidationExpressions() { - MValidationExpression[] tmpl = new MValidationExpression[0]; - return (MValidationExpression[]) getChildren(MetadataType.VALIDATION_EXPRESSION).toArray(tmpl); - } - - public MLookup getMLookup(String lookupName) { - return (MLookup) getChild(MetadataType.LOOKUP, lookupName); - } - - public MLookup[] getMLookups() { - MLookup[] tmpl = new MLookup[0]; - return (MLookup[]) getChildren(MetadataType.LOOKUP).toArray(tmpl); - } - - public MClass getMClass(String className) { - return (MClass) getChild(MetadataType.CLASS, className); - } - - public MClass[] getMClasses() { - MClass[] tmpl = new MClass[0]; - return (MClass[]) getChildren(MetadataType.CLASS).toArray(tmpl); - } - - public MObject getMObject(String objectType) { - return (MObject) getChild(MetadataType.OBJECT, objectType); - } - - public MObject[] getMObjects() { - MObject[] tmpl = new MObject[0]; - return (MObject[]) getChildren(MetadataType.OBJECT).toArray(tmpl); - } - - public MValidationExternal getMValidationExternal(String validationExternalName) { - return (MValidationExternal) getChild(MetadataType.VALIDATION_EXTERNAL, validationExternalName); - } - - public MValidationExternal[] getMValidationExternal() { - MValidationExternal[] tmpl = new MValidationExternal[0]; - return (MValidationExternal[]) getChildren(MetadataType.VALIDATION_EXTERNAL).toArray(tmpl); - } - - public MValidationLookup getMValidationLookup(String validationLookupName) { - return (MValidationLookup) getChild(MetadataType.VALIDATION_LOOKUP, validationLookupName); - } - - public MValidationLookup[] getMValidationLookups() { - MValidationLookup[] tmpl = new MValidationLookup[0]; - return (MValidationLookup[]) getChildren(MetadataType.VALIDATION_LOOKUP).toArray(tmpl); - } - - public MEditMask getMEditMask(String editMaskID) { - return (MEditMask) getChild(MetadataType.EDITMASK, editMaskID); - } - - public MEditMask[] getMEditMasks() { - MEditMask[] tmpl = new MEditMask[0]; - return (MEditMask[]) getChildren(MetadataType.EDITMASK).toArray(tmpl); - } - - public MUpdateHelp getMUpdateHelp(String updateHelpID) { - return (MUpdateHelp) getChild(MetadataType.UPDATE_HELP, updateHelpID); - } - - public MUpdateHelp[] getMUpdateHelps() { - MUpdateHelp[] tmpl = new MUpdateHelp[0]; - return (MUpdateHelp[]) getChildren(MetadataType.UPDATE_HELP).toArray(tmpl); - } - - public MSearchHelp getMSearchHelp(String searchHelpID) { - return (MSearchHelp) getChild(MetadataType.SEARCH_HELP, searchHelpID); - } - - public MSearchHelp[] getMSearchHelps() { - MSearchHelp[] tmpl = new MSearchHelp[0]; - return (MSearchHelp[]) getChildren(MetadataType.SEARCH_HELP).toArray(tmpl); - } - - @Override - public MetadataType[] getChildTypes() { - return CHILDREN; - } - - @Override - protected String getIdAttr() { - return RESOURCEID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(RESOURCEID, sAlphanum32); - attributeMap.put(STANDARDNAME, sAlphanum32); - attributeMap.put(VISIBLENAME, sPlaintext32); - attributeMap.put(DESCRIPTION, sPlaintext64); - attributeMap.put(KEYFIELD, sAlphanum32); - attributeMap.put(CLASSCOUNT, sAttrNumeric); - attributeMap.put(CLASSVERSION, sAttrVersion); - attributeMap.put(CLASSDATE, sAttrDate); - attributeMap.put(OBJECTVERSION, sAttrVersion); - attributeMap.put(OBJECTDATE, sAttrDate); - attributeMap.put(SEARCHHELPVERSION, sAttrVersion); - attributeMap.put(SEARCHHELPDATE, sAttrDate); - attributeMap.put(EDITMASKVERSION, sAttrVersion); - attributeMap.put(EDITMASKDATE, sAttrDate); - attributeMap.put(LOOKUPVERSION, sAttrVersion); - attributeMap.put(LOOKUPDATE, sAttrDate); - attributeMap.put(UPDATEHELPVERSION, sAttrVersion); - attributeMap.put(UPDATEHELPDATE, sAttrDate); - attributeMap.put(VALIDATIONEXPRESSIONVERSION, sAttrVersion); - attributeMap.put(VALIDATIONEXPRESSIONDATE, sAttrDate); - attributeMap.put(VALIDATIONLOOKUPVERSION, sAttrVersion); - attributeMap.put(VALIDATIONLOOKUPDATE, sAttrDate); - attributeMap.put(VALIDATIONEXTERNALVERSION, sAttrVersion); - attributeMap.put(VALIDATIONEXTERNALDATE, sAttrDate); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSearchHelp.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSearchHelp.java deleted file mode 100644 index 0082f5e..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSearchHelp.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MSearchHelp extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String SEARCHHELPID = "SearchHelpID"; - public static final String VALUE = "Value"; - - public MSearchHelp() { - this(DEFAULT_PARSING); - } - - public MSearchHelp(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getSearchHelpID() { - return getStringAttribute(SEARCHHELPID); - } - - public String getValue() { - return getStringAttribute(VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return SEARCHHELPID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(SEARCHHELPID, sAlphanum32); - attributeMap.put(VALUE, sText1024); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSystem.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSystem.java deleted file mode 100644 index 6db0573..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MSystem.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MSystem extends MetaObject { - public static final String SYSTEMID = "SystemID"; - public static final String SYSTEMDESCRIPTION = "SystemDescription"; - public static final String COMMENTS = "Comments"; - public static final String DATE = "Date"; - public static final String VERSION = "Version"; - public static final String TIMEZONEOFFSET = "TimeZoneOffset"; - - public MSystem() { - this(DEFAULT_PARSING); - } - - public MSystem(boolean strictParsing) { - super(strictParsing); - } - - public String getSystemID() { - return getStringAttribute(SYSTEMID); - } - - public String getComment() { - return getStringAttribute(COMMENTS); - } - - public String getSystemDescription() { - return getStringAttribute(SYSTEMDESCRIPTION); - } - - public String getDate() { - return getDateAttribute(DATE); - } - - public String getTimeZoneOffset() { - return getDateAttribute(TIMEZONEOFFSET); - } - - public int getVersion() { - return getIntAttribute(VERSION); - } - - public MResource getMResource(String resourceID) { - return (MResource) getChild(MetadataType.RESOURCE, resourceID); - } - - public MResource[] getMResources() { - MResource[] tmpl = new MResource[0]; - return (MResource[]) getChildren(MetadataType.RESOURCE).toArray(tmpl); - } - - public MForeignKey getMForeignKey(String foreignKeyID) { - return (MForeignKey) getChild(MetadataType.FOREIGNKEYS, foreignKeyID); - } - - public MForeignKey[] getMForeignKeys() { - MForeignKey[] tmpl = new MForeignKey[0]; - return (MForeignKey[]) getChildren(MetadataType.FOREIGNKEYS).toArray(tmpl); - } - - @Override - public MetadataType[] getChildTypes() { - return CHILDREN; - } - - @Override - protected String getIdAttr() { - return null; - } - - public static final MetadataType[] CHILDREN = { MetadataType.RESOURCE, MetadataType.FOREIGNKEYS }; - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(SYSTEMID, sAlphanum10); - attributeMap.put(SYSTEMDESCRIPTION, sPlaintext64); - attributeMap.put(DATE, sAttrDate); - attributeMap.put(VERSION, sAttrVersion); - attributeMap.put(COMMENTS, sText); - attributeMap.put(TIMEZONEOFFSET, sAttrDate); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MTable.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MTable.java deleted file mode 100644 index 38aba26..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MTable.java +++ /dev/null @@ -1,242 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; -import org.realtors.rets.common.metadata.attrib.AttrEnum; - -public class MTable extends MetaObject { - - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String SYSTEMNAME = "SystemName"; - public static final String STANDARDNAME = "StandardName"; - public static final String LONGNAME = "LongName"; - public static final String DBNAME = "DBName"; - public static final String SHORTNAME = "ShortName"; - public static final String MAXIMUMLENGTH = "MaximumLength"; - public static final String DATATYPE = "DataType"; - public static final String PRECISION = "Precision"; - public static final String SEARCHABLE = "Searchable"; - public static final String INTERPRETATION = "Interpretation"; - public static final String ALIGNMENT = "Alignment"; - public static final String USESEPARATOR = "UseSeparator"; - public static final String EDITMASKID = "EditMaskID"; - public static final String LOOKUPNAME = "LookupName"; - public static final String MAXSELECT = "MaxSelect"; - public static final String UNITS = "Units"; - public static final String INDEX = "Index"; - public static final String MINIMUM = "Minimum"; - public static final String MAXIMUM = "Maximum"; - public static final String DEFAULT = "Default"; - public static final String REQUIRED = "Required"; - public static final String SEARCHHELPID = "SearchHelpID"; - public static final String UNIQUE = "Unique"; - public static final String MODTIMESTAMP = "ModTimeStamp"; - public static final String MODTIMESTAMPNAME = "ModTimeStampName"; - public static final String FOREIGNKEYNAME = "ForeignKeyName"; - public static final String FOREIGNFIELD = "ForeignField"; - public static final String INKEYINDEX = "InKeyIndex"; - public static final String KEYQUERY = "KeyQuery"; - public static final String KEYSELECT = "KeySelect"; - - private static final String[] DATATYPES = "Boolean,Character,Date,DateTime,Time,Tiny,Small,Int,Long,Decimal".split(","); - private static final AttrType sDataTypes = new AttrEnum(DATATYPES); - private static final String[] INTERPRETATIONS = "Number,Currency,Lookup,LookupMulti,LookupBitstring,LookupBitmask".split(","); - private static final AttrType sInterpretations = new AttrEnum(INTERPRETATIONS); - private static final String[] ALIGNMENTS = "Left,Right,Center,Justify".split(","); - private static final AttrType sAlignments = new AttrEnum(ALIGNMENTS); - private static final String[] UNITSS = "Feet,Meters,SqFt,SqMeters,Acres,Hectares".split(","); - private static final AttrType sUnits = new AttrEnum(UNITSS); - - public MTable() { - this(DEFAULT_PARSING); - } - - public MTable(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - - String metadataEntryID = getStringAttribute(METADATAENTRYID); - if (metadataEntryID == null){ - metadataEntryID = this.getSystemName(); - } - return metadataEntryID; - } - - public String getSystemName() { - return getStringAttribute(SYSTEMNAME); - } - - public String getStandardName() { - return getStringAttribute(STANDARDNAME); - } - - public String getLongName() { - return getStringAttribute(LONGNAME); - } - - public String getDBName() { - return getStringAttribute(DBNAME); - } - - public String getShortName() { - return getStringAttribute(SHORTNAME); - } - - public int getMaximumLength() { - return getIntAttribute(MAXIMUMLENGTH); - } - - public String getDataType() { - return getStringAttribute(DATATYPE); - } - - public int getPrecision() { - return getIntAttribute(PRECISION); - } - - public boolean getSearchable() { - return getBooleanAttribute(SEARCHABLE); - } - - public String getInterpretation() { - return getStringAttribute(INTERPRETATION); - } - - public boolean isLookup() { - String interp = getInterpretation(); - if (interp != null && interp.startsWith("Lookup")) { - return true; - } - if (getSystemName().equalsIgnoreCase("status")) { - System.out.println("Field is " + getSystemName() + " and interp " + "is " + interp - + " but isLookup() is false"); - } - return false; - } - - public String getAlignment() { - return getStringAttribute(ALIGNMENT); - } - - public boolean getUseSeparator() { - return getBooleanAttribute(USESEPARATOR); - } - - public String getEditMaskID() { - return getStringAttribute(EDITMASKID); - } - - public String getLookupName() { - return getStringAttribute(LOOKUPNAME); - } - - public int getMaxSelect() { - return getIntAttribute(MAXSELECT); - } - - public String getUnits() { - return getStringAttribute(UNITS); - } - - public int getIndex() { - return getIntAttribute(INDEX); - } - - public int getMinimum() { - return getIntAttribute(MINIMUM); - } - - public int getMaximum() { - return getIntAttribute(MAXIMUM); - } - - public int getDefault() { - return getIntAttribute(DEFAULT); - } - - public int getRequired() { - return getIntAttribute(REQUIRED); - } - - public String getSearchHelpID() { - return getStringAttribute(SEARCHHELPID); - } - - public boolean getUnique() { - return getBooleanAttribute(UNIQUE); - } - - public boolean getModTimestamp() { - return getBooleanAttribute(MODTIMESTAMP); - } - - public boolean getModTimestampName() { - return getBooleanAttribute(MODTIMESTAMPNAME); - } - - public boolean getInKeyIndex() { - return getBooleanAttribute(INKEYINDEX); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return SYSTEMNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, retsid); - attributeMap.put(SYSTEMNAME, retsname); - attributeMap.put(STANDARDNAME, retsname); - attributeMap.put(LONGNAME, sText256); - attributeMap.put(DBNAME, sAlphanum10); - attributeMap.put(SHORTNAME, sText64); - attributeMap.put(MAXIMUMLENGTH, sAttrNumericPositive); - attributeMap.put(DATATYPE, sDataTypes); - attributeMap.put(PRECISION, sAttrNumeric); - attributeMap.put(SEARCHABLE, sAttrBoolean); - attributeMap.put(INTERPRETATION, sInterpretations); - attributeMap.put(ALIGNMENT, sAlignments); - attributeMap.put(USESEPARATOR, sAttrBoolean); - // XXX: but multiples are separated by commas - attributeMap.put(EDITMASKID, retsname); - attributeMap.put(LOOKUPNAME, retsname); - attributeMap.put(MAXSELECT, sAttrNumeric); - attributeMap.put(UNITS, sUnits); - attributeMap.put(INDEX, sAttrNumeric); - attributeMap.put(MINIMUM, sAttrNumeric); - attributeMap.put(MAXIMUM, sAttrNumeric); - // XXX: serial - attributeMap.put(DEFAULT, sAttrNumeric); - attributeMap.put(REQUIRED, sAttrNumeric); - attributeMap.put(SEARCHHELPID, retsname); - attributeMap.put(UNIQUE, sAttrBoolean); - attributeMap.put(MODTIMESTAMP, sAttrBoolean); - attributeMap.put(MODTIMESTAMPNAME, retsname); - attributeMap.put(FOREIGNKEYNAME,retsid); - attributeMap.put(FOREIGNFIELD,retsname); - attributeMap.put(INKEYINDEX, sAttrBoolean); - - attributeMap.put(KEYQUERY, sAttrBoolean); - attributeMap.put(KEYSELECT, sAttrBoolean); - } - - public String getForeignKeyName() { - return getStringAttribute(FOREIGNKEYNAME); - } - - public String getForeignField() { - return getStringAttribute(FOREIGNFIELD); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdate.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdate.java deleted file mode 100644 index 5c1f160..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdate.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MUpdate extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String UPDATENAME = "UpdateName"; - public static final String DESCRIPTION = "Description"; - public static final String KEYFIELD = "KeyField"; - public static final String VERSION = "Version"; - public static final String DATE = "Date"; - public static final String UPDATETYPEVERSION = "UpdateTypeVersion"; - public static final String UPDATETYPEDATE = "UpdateTypeDate"; - - public MUpdate() { - this(DEFAULT_PARSING); - } - - public MUpdate(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getUpdateName() { - return getStringAttribute(UPDATENAME); - } - - public String getDescription() { - return getStringAttribute(DESCRIPTION); - } - - public String getKeyField() { - return getStringAttribute(KEYFIELD); - } - - public int getVersion() { - int v = getIntAttribute(VERSION); - if (v == 0){ - v = getIntAttribute(UPDATETYPEVERSION); - } - return v; - } - - public String getDate() { - String d = getDateAttribute(DATE); - if (d == null ){ - d = getDateAttribute(UPDATETYPEDATE); - } - return d; - } - - public MUpdateType getMUpdateType(String systemName) { - return (MUpdateType) getChild(MetadataType.UPDATE_TYPE, systemName); - } - - public MUpdateType[] getMUpdateTypes() { - MUpdateType[] tmpl = new MUpdateType[0]; - return (MUpdateType[]) getChildren(MetadataType.UPDATE_TYPE).toArray(tmpl); - } - - @Override - public MetadataType[] getChildTypes() { - return sTypes; - } - - @Override - protected String getIdAttr() { - return UPDATENAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(UPDATENAME, sAlphanum24); - attributeMap.put(DESCRIPTION, sPlaintext64); - attributeMap.put(KEYFIELD, sAlphanum32); - attributeMap.put(VERSION, sAttrVersion); - attributeMap.put(DATE, sAttrDate); - attributeMap.put(UPDATETYPEVERSION, sAttrVersion); - attributeMap.put(UPDATETYPEDATE, sAttrDate); - } - - private static final MetadataType[] sTypes = { MetadataType.UPDATE_TYPE }; -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateHelp.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateHelp.java deleted file mode 100644 index 278b69f..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateHelp.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MUpdateHelp extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String UPDATEHELPID = "UpdateHelpID"; - public static final String VALUE = "Value"; - - public MUpdateHelp() { - this(DEFAULT_PARSING); - } - - public MUpdateHelp(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getUpdateHelpID() { - return getStringAttribute(UPDATEHELPID); - } - - public String getValue() { - return getStringAttribute(VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return UPDATEHELPID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(UPDATEHELPID, sAlphanum32); - attributeMap.put(VALUE, sText1024); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateType.java deleted file mode 100644 index 2124f51..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MUpdateType.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; -import org.realtors.rets.common.metadata.attrib.AttrGenericText; - -public class MUpdateType extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String SYSTEMNAME = "SystemName"; - public static final String SEQUENCE = "Sequence"; - public static final String ATTRIBUTES = "Attributes"; - public static final String DEFAULT = "Default"; - public static final String VALIDATIONEXPRESSIONID = "ValidationExpressionID"; - public static final String UPDATEHELPID = "UpdateHelpID"; - public static final String VALIDATIONLOOKUPNAME = "ValidationLookupName"; - public static final String VALIDATIONEXTERNALNAME = "ValidationExternalName"; - public static final String MAXCHOICE = "MaxChoice"; - public static final String MAXUPDATE = "MaxUpdate"; - - private static final AttrType sAttributes = new AttrGenericText(0, 10, "12345,"); - - public MUpdateType() { - this(DEFAULT_PARSING); - - } - - public MUpdateType(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getSystemName() { - return getStringAttribute(SYSTEMNAME); - } - - public int getSequence() { - return getIntAttribute(SEQUENCE); - } - - public String getAttributes() { - return getStringAttribute(ATTRIBUTES); - } - - public String getDefault() { - return getStringAttribute(DEFAULT); - } - - public String getValidationExpressionID() { - return getStringAttribute(VALIDATIONEXPRESSIONID); - } - - public String getUpdateHelpID() { - return getStringAttribute(UPDATEHELPID); - } - - public String getValidationLookupName() { - return getStringAttribute(VALIDATIONLOOKUPNAME); - } - - public String getValidationExternalName() { - return getStringAttribute(VALIDATIONEXTERNALNAME); - } - - public int getMaxChoice() { - return getIntAttribute(MAXCHOICE); - } - - public int getMaxUpdate() { - return getIntAttribute(MAXUPDATE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return SYSTEMNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(SYSTEMNAME, sAlphanum32); - attributeMap.put(SEQUENCE, sAttrNumeric); - attributeMap.put(ATTRIBUTES, sAttributes); - attributeMap.put(DEFAULT, sPlaintext); - attributeMap.put(VALIDATIONEXPRESSIONID, sAlphanum32); - attributeMap.put(UPDATEHELPID, sAlphanum32); - attributeMap.put(VALIDATIONLOOKUPNAME, sAlphanum32); - attributeMap.put(VALIDATIONEXTERNALNAME, sAlphanum32); - attributeMap.put(MAXCHOICE, sAttrNumeric); - attributeMap.put(MAXUPDATE, sAttrNumeric); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExpression.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExpression.java deleted file mode 100644 index 57221ee..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExpression.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.AttrType; -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; -import org.realtors.rets.common.metadata.attrib.AttrEnum; - -public class MValidationExpression extends MetaObject { - - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String VALIDATIONEXPRESSIONID = "ValidationExpressionID"; - public static final String VALIDATIONEXPRESSIONTYPE = "ValidationExpressionType"; - public static final String VALUE = "Value"; - private static final String[] VALIDATIONEXPRESSIONTYPES = "ACCEPT,REJECT,SET".split(","); - private static final AttrType sExpressionType = new AttrEnum(VALIDATIONEXPRESSIONTYPES); - - public MValidationExpression() { - this(DEFAULT_PARSING); - } - - public MValidationExpression(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getValidationExpressionID() { - return getStringAttribute(VALIDATIONEXPRESSIONID); - } - - public String getValidationExpressionType() { - return getStringAttribute(VALIDATIONEXPRESSIONTYPE); - } - - public String getValue() { - return getStringAttribute(VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return VALIDATIONEXPRESSIONID; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(VALIDATIONEXPRESSIONID, sAlphanum32); - attributeMap.put(VALIDATIONEXPRESSIONTYPE, sExpressionType); - attributeMap.put(VALUE, sText512); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternal.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternal.java deleted file mode 100644 index 0d891e3..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternal.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MValidationExternal extends MetaObject { - - private static final MetadataType[] CHILDREN = { MetadataType.VALIDATION_EXTERNAL_TYPE }; - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String VALIDATIONEXTERNALNAME = "ValidationExternalName"; - public static final String SEARCHRESOURCE = "SearchResource"; - public static final String SEARCHCLASS = "SearchClass"; - public static final String VERSION = "Version"; - public static final String DATE = "Date"; - - public MValidationExternal() { - this(DEFAULT_PARSING); - } - - public MValidationExternal(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getValidationExternalName() { - return getStringAttribute(VALIDATIONEXTERNALNAME); - } - - public String getSearchResource() { - return getStringAttribute(SEARCHRESOURCE); - } - - public String getSearchClass() { - return getStringAttribute(SEARCHCLASS); - } - - public int getVersion() { - return getIntAttribute(VERSION); - } - - public String getDate() { - return getDateAttribute(DATE); - } - - public MValidationExternalType[] getMValidationExternalTypes() { - MValidationExternalType[] tmpl = new MValidationExternalType[0]; - return (MValidationExternalType[]) getChildren(MetadataType.VALIDATION_EXTERNAL_TYPE).toArray(tmpl); - } - - @Override - public MetadataType[] getChildTypes() { - return CHILDREN; - } - - @Override - protected String getIdAttr() { - return VALIDATIONEXTERNALNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(VALIDATIONEXTERNALNAME, sAlphanum32); - attributeMap.put(SEARCHRESOURCE, sAlphanum32); - attributeMap.put(SEARCHCLASS, sAlphanum32); - attributeMap.put(VERSION, sAttrVersion); - attributeMap.put(DATE, sAttrDate); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternalType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternalType.java deleted file mode 100644 index e052c1e..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationExternalType.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MValidationExternalType extends MetaObject { - - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String SEARCHFIELD = "SearchField"; - public static final String DISPLAYFIELD = "DisplayField"; - public static final String RESULTFIELDS = "ResultFields"; - - public MValidationExternalType() { - this(DEFAULT_PARSING); - } - - public MValidationExternalType(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getSearchField() { - return getStringAttribute(SEARCHFIELD); - } - - public String getDisplayField() { - return getStringAttribute(DISPLAYFIELD); - } - - public String getResultFields() { - return getStringAttribute(RESULTFIELDS); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return null; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(SEARCHFIELD, sPlaintext512); - attributeMap.put(DISPLAYFIELD, sPlaintext512); - attributeMap.put(RESULTFIELDS, sPlaintext1024); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookup.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookup.java deleted file mode 100644 index 3a893b2..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookup.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -//import java.util.Date; -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MValidationLookup extends MetaObject { - - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String VALIDATIONLOOKUPNAME = "ValidationLookupName"; - public static final String PARENT1FIELD = "Parent1Field"; - public static final String PARENT2FIELD = "Parent2Field"; - public static final String VERSION = "Version"; - public static final String DATE = "Date"; - private static final MetadataType[] sChildren = { MetadataType.VALIDATION_LOOKUP_TYPE }; - - public MValidationLookup() { - this(DEFAULT_PARSING); - } - - public MValidationLookup(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getValidationLookupName() { - return getStringAttribute(VALIDATIONLOOKUPNAME); - } - - public String getParent1Field() { - return getStringAttribute(PARENT1FIELD); - } - - public String getParent2Field() { - return getStringAttribute(PARENT2FIELD); - } - - public int getVersion() { - return getIntAttribute(VERSION); - } - - public String getDate() { - return getDateAttribute(DATE); - } - - @Override - public MetadataType[] getChildTypes() { - return sChildren; - } - - @Override - protected String getIdAttr() { - return VALIDATIONLOOKUPNAME; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(VALIDATIONLOOKUPNAME, sAlphanum32); - attributeMap.put(PARENT1FIELD, sAlphanum32); - attributeMap.put(PARENT2FIELD, sAlphanum32); - attributeMap.put(VERSION, sAttrVersion); - attributeMap.put(DATE, sAttrDate); - } - - public MValidationLookupType[] getMValidationLookupTypes() { - MValidationLookupType[] tmpl = new MValidationLookupType[0]; - return (MValidationLookupType[]) getChildren(MetadataType.VALIDATION_LOOKUP_TYPE).toArray(tmpl); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookupType.java b/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookupType.java deleted file mode 100644 index 295108a..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/metadata/types/MValidationLookupType.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.realtors.rets.common.metadata.types; - -import java.util.Map; - -import org.realtors.rets.common.metadata.MetaObject; -import org.realtors.rets.common.metadata.MetadataType; - -public class MValidationLookupType extends MetaObject { - public static final String METADATAENTRYID = "MetadataEntryID"; - public static final String VALIDTEXT = "ValidText"; - public static final String PARENT1VALUE = "Parent1Value"; - public static final String PARENT2VALUE = "Parent2Value"; - - public MValidationLookupType() { - this(DEFAULT_PARSING); - } - - public MValidationLookupType(boolean strictParsing) { - super(strictParsing); - } - - public String getMetadataEntryID() { - return getStringAttribute(METADATAENTRYID); - } - - public String getValidText() { - return getStringAttribute(VALIDTEXT); - } - - public String getParent1Value() { - return getStringAttribute(PARENT1VALUE); - } - - public String getParent2Value() { - return getStringAttribute(PARENT2VALUE); - } - - @Override - public MetadataType[] getChildTypes() { - return sNoChildren; - } - - @Override - protected String getIdAttr() { - return null; - } - - @Override - protected void addAttributesToMap(Map attributeMap) { - attributeMap.put(METADATAENTRYID, sAttrMetadataEntryId); - attributeMap.put(VALIDTEXT, sAlphanum32); - attributeMap.put(PARENT1VALUE, sAlphanum32); - attributeMap.put(PARENT2VALUE, sAlphanum32); - } - -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveComparator.java b/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveComparator.java deleted file mode 100644 index 248cf2c..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveComparator.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.realtors.rets.common.util; - -import java.io.Serializable; -import java.util.Comparator; - -public class CaseInsensitiveComparator implements Comparator, Serializable { - public int compare(Object o1, Object o2) { - String s1 = (String) o1; - String s2 = (String) o2; - return s1.compareToIgnoreCase(s2); - } -} diff --git a/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveTreeMap.java b/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveTreeMap.java deleted file mode 100644 index 87aa3a8..0000000 --- a/target/filtered-sources/java/org/realtors/rets/common/util/CaseInsensitiveTreeMap.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.realtors.rets.common.util; - -import java.util.Map; -import java.util.TreeMap; - -public class CaseInsensitiveTreeMap extends TreeMap { - public CaseInsensitiveTreeMap(Map map) { - this(); - this.putAll(map); - } - - public CaseInsensitiveTreeMap() { - super(new CaseInsensitiveComparator()); - } - -} diff --git a/target/test-classes/org/realtors/rets/client/AllTests.class b/target/test-classes/org/realtors/rets/client/AllTests.class deleted file mode 100644 index b3d6255b1eeaf7337d24cd81929632af72c43c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmah_O-sW-5Ph3|q>YWO^#esb6fbQLF5U!15W$N<4=n|c+ql+^+XOZn{abn}DEI^X zQQ~a;I2GK(yqPy|-VXEe`T7pv5L*Fi==xX>;5ppzvB^+BQK_=043++1!caZWZY4uI zQmMQu=2L0LVycPhMp-QML>T4jAF^uiRnD*wJ)iN6|tZKEuv3 z-*TLx_wSAj9p}ZhNN4LZWgFq4xfqjNJAVU&>`L4pG$+d5N+aV#ZtNU1-y}G6aWAK diff --git a/target/test-classes/org/realtors/rets/client/GetMetadataRequestTest.class b/target/test-classes/org/realtors/rets/client/GetMetadataRequestTest.class deleted file mode 100644 index c3ea78265f64ea2c7d76e8019fda28eff3a63bc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2162 zcmb7Fe^(ku6ukooE3Q>nO`1jxNh3iGqDgC0l{71$u?4j({=l@gBWz&p0%mux?RRKD zNB_<_J(1I%_5<`o_4Ex;H3B&&oU=P`X6}3MzWZjDfByaBZvczy^7VNTAuLO4MOv%Uic9OMw7!tmGX=VwtOb!kQb8(!bp;y=o-5dt8(+%T zR|?V!G77e&&vpPi3cd~?8-T&!U$v^1c*@|7%Nn9FyCk=D1`CH&(DMvnpa6rpTCr7rEeB^Htq+MUI{o zh6zDq=dNK@PG!1)(?T;u-zPW)4yJx8n5V+3Rowt`40pRH%G7OPQL4=%6)+_+o7FRJ zTg6UJ1PB_nx>GRMEy?Y6Cqx!Cf5OkWihKB&VeUNyp&l4{BbUlBuvzK9OQg#}oG! zq@GPi4>IZSW->k-&i#C9#xtp$p44-Cw8cb45k~=-Dqf<*FtEEro2jE*eka8+EbENf zyjqGG!m+9npcjO7X6hwsIhCU)a{2~IKbR;J$~^e5Xco!E57_!_%t#Zl>qSc}1cj1sa%w5-X#5%VnGhgITf=4aa5WHICPVt~(|L+iN zL32)>kmGb@uVD5}$EBOeFcz8VWJvd{<-1k4uXEf!J~0borC9{UY!;!m(5Y8-qQx*m z>(A-l>~M!yOhKvWBE3_?U13q4{<>o)%|i3T7w)D@H>Qy;z!#lB$#;hF z{|QfC^J>0x^rh!C{~HA6-au)fpN3!q12m`&3~GKdK4@S_8zy6<0gdd-r1zjuus%xY zhlT)d(L98HN*u%j2CzyylF*G-(l#NL{@-RXN5me|o~$lP&-?|+Unr6!x!NQ->i-L4 zd9OBZMCvm3>$JhnO-`hg2wS~M*Lhfr54NU$9U%I(?N9(rerD}-&CH6JERO<+_nj$t~ zYSt8Gj^i1Pt=2AKkPs83rK};;M&74trU@S*k1%;Wq-vt%w?Llr&`IOVqp;Sl>Z;xg J6w`yn{{X~D4-EhS diff --git a/target/test-classes/org/realtors/rets/client/GetMetadataResponseTest.class b/target/test-classes/org/realtors/rets/client/GetMetadataResponseTest.class deleted file mode 100644 index 4679654ed500848038bbec8da9f7e5157d50ec85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmb7>&q@O^5XQgszqMMeUZje65c~tKdR4p>^wRdwExo6^Lyc}XB}oOJ!=q2(N$}tU z_)y|()gpDJm_st(H}e}Z$=mzOD}WQMmyyM45w#-L1PbRWR_;O|ySLvH$Tf6G0@bF9 zsXZR{$#i8uVyD*BfsA_6s6>C6Id`qBz-d#PfoDiYP8-XCvtAG>ik){wu0>9U(#a0l zk&Z2O$+|OvZO3O%Mk@60t)t;=nZQO;;j4HMkxzpmxBG4(P)~BLapcq}CA*bm+qy%6 zHlh99x$Nt)3FuNKlWqQS$D}^TCHy QaCtuXmTvJ6%}0O$jfbpQYW diff --git a/target/test-classes/org/realtors/rets/client/GetObjectResponseIteratorTest.class b/target/test-classes/org/realtors/rets/client/GetObjectResponseIteratorTest.class deleted file mode 100644 index 180adb00516a7cbaa5e3297bae1b652dc7b10212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4844 zcmbtXTXz%J75+w+(Re(DAVR=61aT|2u@DABscmR2+kk>E6dMx*sXMYp^4PNEj7Hc_ zucVjUdPy&76WS(}+)7AW0*MWnrhU#^-}=_quGN>eKcMY*G@9{9SX~snmNjReIcM*E zzHje+_I JD&h(#U~2(BN;$Sfe%R;69E`9CTlT;w2WyPnEhB>X1;^oz3JdEn|&n>AWuEbxuWN1Kcnc?Hi1a zwU){I%H;hrE|pES$@oRt)Bzd4l(3=ybl-67WY?+Tu~WT6CkF?HddH%JJ#@`?E-GPF zr;#zNBND0_n?@w~yR!*h!kRuKqYvb#6AGc2Fxfvc>k6F5@aoMn*vxvlF7N7QXgdMOapusWxYXEO;$C($Scd49$L`svELU4)&JcUE4zq8~@-iPAea zuFqJcAQ!-|B-EGCGEl0DM4CYDTrbZidBO8fjX7Uz; zU)QEPVof6Id`3pX`V|+@nRq^#)XgE|S;n0dV^CW9^b8+yElV=DxZ9%hmfmHW+B^*| zTL|C{W?&}+&<<>6D4RFO^`nLe<83Zn4(bkUA|UsOTvZW8HzTBww}p^7uH_~eHWF0k zt;Mho50e@R2Oli#C2XH|0zJZL*V1V{-4Tjs^O=NZ&L7@3sf|x<3*b!^m+@;_?T_{M zhDR95y$c0!XxG7RK@RcUBxKQs`wB$RNTZz5^7Tn zi}18&vE0xHYc@;sETf(KY|CB$^G~VqzII(w@v+dY7}Huxk4(4 z^{80Dq9VG%WT zt~(+^+e4N@kfY97l;fN*Y@e22xEgY7xaWc=c8cCYkv_6|Pry`Ithh5mv6Xc%Qf%dy!hU|g1o(~6h67+* zK*@*CQanVTEBX6hN?vXnvcY5T*l#h7i&!b*k)YQF-HrS%@w}(=MPl?a!=0!*! z7EJdR7Xd1ca;(}5a16&ONr-W?Pi&U%QrRlb{Y&awf^T#YRsAhNe{j`p1gdbRB`61L z?BNoW(Uv9Dj^2Q}h`L3r9tbb6uikwdk4X3v*0%eD!FvA!*4@IR!S!PFm>6vkqm5!z zzl2SrLTXs+$1Oa*h|Qel{wE}gTfBp!#_C|GzPhM!s~8nDZWE(|#_a`-l*%=7{~6mc z&!b>whht`kK&lD?sW>+BcPA0q#V^T5tVa_C*0@DDtR6J$f-syKx$*~hJ_P$K(K3K_JVY;#dyEhrCoM73@+3()LE!rc zY(GbX1(-$&Q5?gVCKR)T;v$~H%WMg+;2fLK^Z1A$3JTh6U|b4rx)fY1Qg8y3MGB^A z)23hHy)VYj>ycd&&G^A6lCINxk5XMmjNTAE>qe2IDFXC)Y8 zaQV1%Grr7>uX6J&4jJR5+b+CKe2TxC;65hGO{fB0so=nBZUP#pWE;0Ma5h2N2mQZB CVZucK diff --git a/target/test-classes/org/realtors/rets/client/IOFailReader.class b/target/test-classes/org/realtors/rets/client/IOFailReader.class deleted file mode 100644 index 058e4420a8353bff495e98a7ea9361a58e87354b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcma)4%Wl&^6g}g(c{py!{GtRT(|nJrOVu!;TavG*uv< z^)K5pdf~QxBE@Ftx&Db8DV>i%Grmwgft_X;b)87MejG+U264~vd?ka}X&jH`DL{2L zQA%KWUR)sGlkvEjMyjXUPxgG`-qha;q^i3O0qf~|Pri*+7*Ib`Jv(ePG;Dh9{<(m0 zcF4x?oS`6^@?{{f=v_$f%~XLz6tG%hKl0>}(nGGy+TGLZv9X9H8+q6^ZsE3#HLUAn zlM5WLuW>vvBe2?1mwn%jWv4QOYnlfF+yAvEf%2G|wqh9#?}yx@EA!o;>$KuX1zlbm zZt@XWd>Ncu8)dWrQ~M@TV0J*<;D5SSA3%I!WMG-6m7o^8^H^biW!QxxO3c`gGFHhU zSh@NK*TxqZ^IS{hD*S`%8l7n_E|5Cf*TW{+6H5j zNIIe09MQcbX0l=@boI@x0T$*N*VwV1FxG~>lVNRa;d-KC;|40pDr~N{f)u8DhJFMi wy(g?_SH;?A7$30s4e3|K%mCRR)3q$I2jtC=bA?=b&BIxWf0^YDs|L1z1G_GxaR2}S diff --git a/target/test-classes/org/realtors/rets/client/LoginRequestTest.class b/target/test-classes/org/realtors/rets/client/LoginRequestTest.class deleted file mode 100644 index 072a43d7e4fb8c1052cf588e757dbf1ad85e219b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1171 zcma)5>r&G|7(LsTHiU4CfZzp11zL)Pih_cd8Nthp8OPx^`ZKLNB^nahY<(hMz(3&V zj1S;LIi77gMFkyxWOu*a?>pywXE#57e*F%hhI=-KFj>MC8#zo`xN7DpGhDMVi0c+^ zm|)t%jD=aVEL*79m_xOM`4Vml6z_*|s2>XC%avV$!g}&n3Jm&TEMKr!n8^@uyJ zpEQDKH&CI8JDUZ)7p4MLKT%Cj$sp2+O1aRf*N8$HYtK)bVZ131S~At!{MH0)&H0(s zJ1Qcpk_Q5_X9HmIuqob>`msvhOO=VWx004>$fu#vIr=x_!n@#O;9wZ8!1S4P3QX*2 z{bAMf3|UJ>tIM^;B`-3qI9Pz^U=cM3x3EP2>MDpEdk$`QBBP5sj|D!cx3xOBgPOqj ziG%qJp@d}zE4V9AIg?7`=Kng{EPBOHtE%{)fAcCrMF z;XEVWTetW%vvb@V|AyR~Bjo+6TR23ITc{qQ_ywh7JQoG#^}r(X07^u%+Sp@ReFxj3 z#0gv=hrq=y%O^@UEdHM?RpDBP=Ha+;16YUu!-GAJr0%i mQ`G<_Y1TANTA+p%+VqH?yx@s(BU9{m6>oGEU*c&Fmwy3r!Von8 diff --git a/target/test-classes/org/realtors/rets/client/LoginResponseTest.class b/target/test-classes/org/realtors/rets/client/LoginResponseTest.class deleted file mode 100644 index f8895f48b1a5c51685f33dd76fbb259065a9c1b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcma)5%Wl&^6g`udoz$TaN=jQu({t#>ZU3Z!mvo90A&%m?vM;}Jdr&i<%?LC zMO%Ty2k=pdJE>s-w2CavSB$qf1Vx;=s7TbCuqD$JDX-kbGmj8b~^oii^j|pOrk(*>oNehu|PXg_>(+A zl0IPL8xn8Nk#y>*GoYbLyD5gEfZQl3GpFP-l4PM->cw zEp*_L($?A7H_^bZfu@OP*fY_B#jw>KiK%~5966`Fs76xEf+9b2`9yglF!3C1hMk4U zJJhtJKi&+@g^stYW2i3l*0j3oy2T8ckk9*0ldgZz178_(J)Wq4)bzToTV?r9Ftqf9 zg5iGS8uEnoCYVfhJa@*_^vZve_PGqHZU&=s)awq~FRA#&6V)>35yYIFI8w_!n5+3K z^>Q@PZT{$ZKF#o7RrOJ#r?5(o2lO mCD1!1Wo2xjLRgKEDk1eK^*Z^cu})t;iZ9=Ycto)=Z2Si5rxJny diff --git a/target/test-classes/org/realtors/rets/client/RetsTestCase.class b/target/test-classes/org/realtors/rets/client/RetsTestCase.class deleted file mode 100644 index 5fe9d9431c492fc68329c18469f83e5bbb8740f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1942 zcmZ`(TUXpv7~N+kGYM%B7#JuDc0j9K0#mSJ1*B4>7M-?ovDnsI7{W|&m|&98x?H~X zSM3^(sZrwrYXv`P>A4v0QWPdQe>Be#7>ICCj(x1kP3LV9oa3hF50J(UH=w z^^;YsS@lYBJ@A}*Wo|SwIc{;KzTXIFwXHoyDs^iwgz-v*K&o65=u6~Us#(5Ya;Aej@nx)~;O+=1wt5frP_nML_i%<+ANFpSZ`<9=BG705$u; zKEv&8f$mdMP;jdp5Qsp#<$2aG8*W6LDvq4uAIp(ch!tJgkCqTIVu4JUl7jeK0_PJR zQH^Vjot;n-eLd{Jbw_r#E7_w-nbpASctgdSfpu&c_!8vZ*D80M%&Addf&Md_Z(tK& z8MupkD()Nj8pA5SG4L(E<0KT0g_;@iw*0sNQ@ulIpLo8#F(tLzi-!BW8##VOjbD|IRmxe<=C8r6FEvaEh34U z9LmHET=ePA>ve*5G)%;1$M+?l#1@a*C}&>Tu^f)^iO+F)c~Q({*s=YrkyM8G+v?}9 z5B#wSIevT(@Kod~xMs!Qv4BkYV{=kJNNHviz zjX#5O_Yj#}wh48NPZL@bZGX}wN~?$NZBU_yse7YvyoI;vqY~pqyu;+YtQd)l{KFzy zeyy5E6GxA6Ntsd7GnstGJo*C#9?X1ZdV)_A`XjWZXOsi9JIw*4IO*7ZkL~b*^FgQ*rrp5=SXO+RS+n~ YCE-=P9}b&_70i%ginOlKBZUwD2e{n5RsaA1 diff --git a/target/test-classes/org/realtors/rets/client/RetsVersionTest.class b/target/test-classes/org/realtors/rets/client/RetsVersionTest.class deleted file mode 100644 index 67e040a3119d204323a02f63ccb8b1d985ecc784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1783 zcma)6>r&G|6#kapmJ&fDqIkh7w-&XvYORXm1wqkzqqPbuHEknAYlBIukD#yNBghYA zbjAnphmYiVw%Mi;iZY$)p7ZUweBbWb{QUjx2Y@sxQ4Ax+ak?8pq$4;JrS)tS$8nA$ zBf#?C|;}*wljyaAy9CtZ# z9QQcxb3BOPVFZsD!k3M@;Y=|E;)xh4L2t{_-y1?@%xtX1B8(5$K*tC(+BHOHVsj%~^tL5X3%m*U7{izmb(F!1@ALO#_z zkC&i>dW`b6;hAjwna{vGU diff --git a/target/test-classes/org/realtors/rets/client/SearchResultHandlerTest.class b/target/test-classes/org/realtors/rets/client/SearchResultHandlerTest.class deleted file mode 100644 index 1df33f2f0a95d78319b243023413a5b893817802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6193 zcmd5=X?qjb6@JGH8p|@qV=!xi;so%DWU~Y?7!+FuC9+H<0WpNSV`;DjW69Bsu<4d` z-`jNG(tSzy2HIj1Qo5ySn{;o}Hf_K5Q~pDrzISFUjcv(s(mqf6MKkx@bI&>Nd(J)g zj-L7V6Sn~L;GZ58yf})>b(q1d7ZR>`@LDfwaoK~{)#3GcgBKpW(SwIPc-V`2yvYkM z-YkS~k?~fs;%zeCUXOR+onr7V@%C=<_8uAU70>s{c)yGfh}TDCd{E4PNc? zNSOIdcA`&0!$2-;m}=HMt?C6$#&rpe$45p6#}dP#Xml(YP9&*hy@rk_obkGFC>|Xh z3&-OlaYxh`4JE^lWME`4EJ2D?1F;uq&oyP+YZ?ySA0IiB7>kEbMn`S+#_;gT;LT;AY|X#`SwM$4Lkgr??GlX1-`=;jGEo7QPi zGfY8SzL2$Ng+M}I+j4T-S7(^kYBSmC0bEX4MYU132Ta$8%<^^F{SFdolq`ge9WwbU8{3QBc4=FFHB_#tNGmWj0?!Q z842~mRY=#9>I5|vF)C)IH`p6IAmO%U!k#l3b8=w8yubW>u3#2bEW2SfuU{#ajf5t# zE~=WEOSVPG7Ap#0$-FvE%9brC&21HP74j=#e`VH^mDiC(ubq>jjM$pn+(qEpWV=PP zk`R2Uo70CFMm(7J;RYV?;S|nFXkV2PQGpV=R;B9%>cJB}+{BZ@=?^7r6l=>=pM>>R z>&@hx#v9kvw3ZjEZi$~C`S4@>M8d;|{m+ge~@#@K0Kp3@#{SP5(?j zm!0t8S^SzcIj*KD78}RW;zn|!6Dq&q=Ct(v+&%VsAAXD9`S5%EVbR=7CT+4otSxD$ ziG&T*0>p_abygTL7X1HF1pFsFEn)s8a62$^DwZVisa!s79BJ(d25oBpr<|8E(d){D zb20|{i#cKOF!@?GtqBr~+)7wi1S|4nXl!H+g213ZWB9WLT^9-ZvxMz7TUqNs^ye-J zg3blc`!!vg;wi@t)l}qD$Zbk3Q#}i&Dp={MV1;s5VtOS!xr}|Q4_2)1|FaCtlnuXU zQTVakLdE!pn5Oi9vr8BDql8TvQ_HKonfQ&#TtQF!$2Gq;HEmw;;W_-pgTMOlH#{Zb z*vpNuRSiSS zo5_5EqLwnjofUC-C$!RybVFNv*;{dgZ7P;CV?36YKph#sNQSLweYRfs!GfyuSlU>| zX(S@N9xOAn{5rl|BG$@Q#5_kWpb>rsP{5KBAS31Duge(2>MV~<232pzIK&9a%dV9J zabc4e8oBV(ZiiMdGkPH6GU+JseeGfa5{exRK+qYkU{SL$2{Yj*sI+aeaj2dtLJfIlj*|4saZG zjrVdq>>3B*qb=Ua`FoNP1^ATstnHXX)m1CRSMhg^C0vg<-^BtdAb}*G5O-1n5sQzY znr{Tz(RmHk*HQC02URE;Xt4~m*h)nMbvR>1bU(FgXnd4Uei%4LAEm1`lmu_0c61JF zVmIL#?e4k;c@A}lYHq?idK2}dopbQbq2W;N=9 zhthZ*>!M0i=M5;l<)WD{>m>|#&0~YoQqy&79vhWS%I2=>-g#_Mw$^Zdn^4@?S$zYy zRUxL_Uej%9ZCCu=w$>d~Y86U%mNL}Kya28IC+tor5M{H2Fn98I7n9n?znt1xY#l6) zPLkV27~K{D9d@7&0UpwxhQ=gpW|3XM1OW|@s!6_8F9Mq>f_|h&Kc9DlRrQPA7L-E@@bke_u(QAThRS>*hT1R2YN4c1>mYhfG?H<9C(EQ zA0^;p1RNsZdkA=dfCmXPOz98-A1A;Q3_n7^_Y&}ZF9YzUBH$#c5c_&lhZ3{^_b`+E zY`B3vOR8|KMQM!DjbI~tg6J3acHdN_xyhl~y>;|*zV@!hSAxEh^mS_0zNU)45)Q7W z4rL#Gol*ABMv?G8^jv diff --git a/target/test-classes/org/realtors/rets/client/SearchResultImplTest.class b/target/test-classes/org/realtors/rets/client/SearchResultImplTest.class deleted file mode 100644 index bd71dcc49bec4fddf72be886cb52f515331a3e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2163 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 dAgqU^#$?MIX%o4qnty#Y-Qre7yFtBv8xM zVRG^*>nZ`!67W9gRGTe<%F3HP0e5&)Z|hWj?H_bhzAHNkv5j^X%VbaH+Sa2(*ZkCl zz`J&q_o7_M#AJEFjVYoy(JD33t}09`J(7v;e!m&KEz@qI^7jIB`sT_M<7jU~{6O zyJp7XY-c0H6lwx*C$>K@Utq>6h!UChqHmpj6&r!|iA;BejJ_(?`NKU3_zcI&;iGUF z^u?2qyNFpZS643}&bV>#h^uV^DtOE_90E|s3@d>rXb@$aKN8_E*M7tK(Y!$Annjtw z9}vtBK_ddfG0Wf|C)#Cp7*EHfTdXaqx7z##_rE0jf_3QUHG^z&YFXDaXxi$!@*54KXdT8gD=GVQhpnfcPoS2;(X=cj;wbb+{<7ygZm0& zx0{`&y`zvS6rU=LR)RyLFj;MO%zn3BGvO0mYcb+igSu`#)nQZoesI*jY(@&})gWw? zL!(_W+htD^_Q$=rcSNaoZhK$v+%rlj!I5%BVjIzt9Y!#sM%>K zsOK!>An1m5v)z>5O%L_S=G9mFNA2M<<~&p|r?B#W+UMaamK2`)&ML!nrefs|Xi($IlWJ$^3^Z&;NnBy+ zEog65kq=Eogu}xDNG0fYEL98e*)T8hu0p!7yBl9-9%w4^1mfh1;R8MhvwU5EG?W}d z{^#kHxhjb+A4C04V+0HQkHx_h-lOd$3Alpy=_xD@HvhsWYJ{=%9!8c&k1<;H)1@Pf z^^ox$8d)*il0SX~Pt07&pGeFh(-mZhkS5X?vb23T6qdyjTt0>4v4VWU(pQj0k>z|y zB?=!6w0zGT(Xt>~Qn42IL`$x(WyqQ*BQQbMNpf8v>l9i2H`o>iY|{g_j|XhOl1tjQ z)5GLR@y}w~XK^F?cDjcPJxu*aMkdJ^D%+qc;3Adf*^x`^{w#G}=6{Zg=J^aPpg^6g z^loq>8=S{IDty3>45zizS3e@p29?UFePNpaMyY{FYRpXJ3BBltG~-iurZfESxpx0&^pG+WJ)XqODuepuR2O%-2##!q+Wp(5QM^?9MGSwkYIOt14dGC7P z=o>T4-~Zciy5twGkRl_T|9?K=VA;!M>cO+sug*WK-__|M5_!Q8BqPjO9(PpSWk}Xu*6Q1p*VSTWn?Wxh@V7kQ;Z{3e6OL)MHyFlBw&e58(M{7b#TJ8-*~{+It7Nw*bG&R?Mz!B< z7*3rxI^@yIc9VB@xnoK@a4KTobQxC4w$si#2JZ;lap@r3eADiBZ7bh31aEP{^L4`& z6*8VS4veOdWL;v@6wkQh5_@8^N4~ZpO8aJ~RX^+*1iYHbzB&cA#Fa&479qz8WykB5 zVKS2)rIgNx?j#Ax3B)&Peb{iXHutMw6)7eWz(WHl_R%f9kg+r>{ZBgob-qV_5#z2}t|_YYq3Y zu3|&OCLYMW@iwZUVGHXT&f=Vghj_%W@b@amGp3bwtF|{z$FLX*|1rv>TkQ1qxz+C$ zmZ|(Hc0n$Aum@w_75P0)hH$S>TfY`e*}FQyHV&;w;2GYU!OBM5y77)6^udS+SBhb7 z7&o|*!zh6ZGjyYq^dAt$MQ9iU!x^$dP{6!4n8X|;|B0J?r;R2?}qIkl;L>LUyxEx?Dc{ZRNA@qS_LXb#N@`5T$6wNy; z0g8evxEkax2DxEfIhmRoN(~QEuTkrM3!IvlEu`mlsvP->Xc#Z%b@d1_|9phF^5zrb z$KC0q4~V%&+^2}e4DmSbGCk-rjWn)%%x(;r7O0r)NX_ZWXCzLtO%JhE10aT*qtew8 z>9Zr!6*CC`#CgxoLo CzE`wpOu2g@j9yM_vGMYtVdN1*B_scSqDc-^=8 zIL@`oyv-dI@8ZNxr`E(%?bS$m6)W%abQpIiIz#7kmH2_4b34CFs28b8{VRbt%>}V~ zy@!Vam98CWft7x0^!{u*)cHUSGkRA0Hc{E3%F|$r)hQ;tEACp zU!^(e5xt2&;Budq}yr#;Ygs|EXZ$$3BnGiy~4p4^?KlkT8TTt z1qdut8=S^v>(Lj8*4Fk{ls*@?YCNmF1>U>JvsK_oNL;1`%77Q*5-X?|xDr>Wg^a7X zN>9k}j638Mzr)G`cKsxH1}kt4YlL0rlM3Z^!fg}~o48Tuq4QRzexT;u&hHZHd8RY}Qs8xKL9AZy z!J$B-y^*_jCndDNBlLOMD$Gf5VrDK`TieCQ+3)J@JsXFqR z(JsPm+6QK4Q}rebuUr2cy^jJ4x!BWbZXAp3D?c%#2zO%KMKi_{sxczm<3}#^kIfx{ zXa9{L@Z{{fY+b&S)~Qn#1YVqd?H|KOx}Eaxj|9rCg8WvPAZ&5kD;#`LuLpjpmAE6E zgTOMi!AU%BKl}{Q-q`$t(x)P;#qWxxyZm>Kl~H^wDup<)A< z=?N8{a)+AYci2V&yY?%13M+60tAt(Sl?vrm!d)vM)^WY?-M|JeP^&RorsVnwywm_M diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAbstractTextTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrAbstractTextTest.class deleted file mode 100644 index f3a72282cdf8bb0005c015d80c79cbb78a4e9349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1778 zcmbtVX>Zd&5Ph2_b?O)z+;U&0Es&-_xS?F7l!7XSLo`%^Z%(=jMu}bQEyvG70?Hxr z1Nc#hH;HMYQc+MHdA&2>>Ix_YfM~wx1z5rHr9Cudj!Tc+(9o$ zyf89eR|bXRMrADAaxjD24rXyj1nzdpLH5OJ9C}gxrEZuGM6j$w6L51K%;7HedgH(I zOcZ%7D(GMy_Y`h!O9q8Y{}nGSDjT72aqGATZ0^T?oapsFP#Ec{(dWHe+Gd|FEXWZl zZ_P=%N{Udhn%Z<{Bc;i{_U)WscB>=DI5zXIR{a)F(sZeBP1@ppo=2TsyZ)y~c;!|^ z1%;EFU_9^7oucrxb(3#YZ}wkw`dwl_nUwJ45{~hU2c>%mXbbzb=!GSAA{qP>QJkI2%@Ju4UO z;^-O%Kf>za?!*8whA_h2K7 z6kR(9FhyT4iOVn$q)3nvmNUULl4wsCEKM{*eLU)nowikm9dHEdv0MR@{S*j8~%#cdTk8UyaAsHnJ`!bd6G6G(QBTCNuetkztwS@JBi z9k`xPBk)TNx6^T*QpXC+Gczzt)gbVWpLeZ_K%!G~ohI||+KwF%C|+1O5m0vBGfQBq zW;@nluT!_YW3%4oj!|fy!G@o20hup@M3=+cKSA=h*TCsl>N} zCtU&U!Lx?d4Q$u(Q}|dw4|qO^Wteo=rI2&;saa~9PP24GOs6R^f)Lkgeh*u|#;X=bdQ z=9!ej108#KD4<4(i!>J^o95~1>DT<{bv(j8?{EYkva&1Dy7Rw^kuCYJjgZ6E&zm0I z+VGwQ$`>m+;P5^+J>MEjOBD9^<+Nr-p#4!0mBnm+F|TUdG1xD+p@9lR>+ zT350QEEisf`f42h^ZL2fkQ1FXec$qef2*z*-r_wO@K#CNW1_?+4&AuFzBP0h424^5YN;$QA!U>`Nu1 zy+r(1D500pGH0Qi7@hb}MpV46VN}DIhBq|4so|=Iw=}%1A*Eql!-R%O4O1H4QE@Gb28?J(tC+6Gb<9NZ z5^l)TyHPYDqhdCSgHqzA+~1SS`%>lu4Ij$=Be|FoWlk>h^17hHQn4tYT(a}FcUd5m z=$sJJIl*XKDlgp=7Q;&Nz?OOdoDT5?TX{%EHgiC6}=&WdXIZR5{TIOLdlcnmdq71 znKSd*WSW}!EJY(LX0AkE#4LX{e^*KK+>%8fnr`l(RU|lc#0AbezN~frjn5V_jvMn6a}wPP^CTF~j6l(!+ghIF%kH?Ti4pO^~!| z+3o_Rk0-iLlGNu*-=pTa=czV5zTrCgY6>B+Z6SC;!4TREyzN~M(-4?dCyvi%Qyq{_@d*+b+{<%@KDmRf>nX`4be*Q zTV?NHRmWZ2lU6^`@hLu&PJAvf@H{cg4i`B8zf@(b`Fc&8(QfqJo{~S#H#a3ayhg3- z*-lg&T|muRp7evSD$!Zfjg``|RdrU-a=p>pCB80!i-{VU;IY3Rh5Ef00*GN3c7gK zeF1c%hc}jt%5_p%{EaX)?wa}|>M|iCl+J{Wa5@t)BI%4`DCv~uGgQgYBx9dsMAI47 zs85dvYP#g^m)sX5_dt5$F&Z+D&^Q=245KL){vOQ&YiJ4eM_MA?Paa~hyCu>$sKmlC zh0N9venL|jZT;$F9He5*XfNYXOyN?-;TClbM;=7Pm;e4;0qBtcJwTSW`LKr0^d{uRIf-=UoW z9>O{f<5%8)$5H&nqCG{25I8DSmQU8=0kKwDiPJ2cLWCI3@IQ*m>3bP{co`9*RJrRL z+^;vdPgyTt_YYe0HCVr(wlVyPb2!f$U%)Tu=c$gKukm)CZIi(_7{Eo=e2|`mDK*63 zrD`|eK4n7W^aj;SbsM2@8OO$raCc7`9cwt=ZKytFUzM_%vUUapww1;PY+$hMbgF|b m*TaUBp~rpjz*UXiJb+i|Km(32yjSUJ)veb^9i~PduKWk08+%Rw diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrDateTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrDateTest.class deleted file mode 100644 index cf1d6c9d23326330b00de5e89673d48ed973bb36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmbV|O-sW-5Qg7L(nM>tw)N!An;+ofK|Cme_;Cte483pCrLH8|ve_2>S)K$B{s4cJ zIEk%@H(l7BdEcFf8Rq@t^$oxgwz}}K8KECxKnTxtrQJEf-`yJ#f=e@2gkGX6bvr9F zWmB0I>73P>xZrRl zok~^hP6@H&xbz6!>&IM8oi3O^ zrzQ-W-lCAzM10SS9eBLf=6K*WqQh^%Lb0LcX)S2efN|2 z;TFw~(I(nlZf9n9X6N^tnf?0X(=mV=hih_~j$r_{f$LJv7??G1L&uzsc?NCSah-65K}lye8PxmUwqO{@JFa+Aua$*g zu#PeQ-S2wxuNV~PEhPzI{u#ors9orYY8hU;}N*LG`uU7M1yCy=u%|mYUF!Y_W zy-H%ut=Ebo2$vX)kfgL3q6fTMZzS5|2i&f5cgHSJjJrdA%%T4wp=~%(%Ea@02RCh> z`+@Koa{qxyLMgu97j%7W?NvqWhmPk4I&P9(@ald=tUHqVP&?*nnbpJ);tYd-BA_B} zxD=rjUwTBSxa$kDX1XqpynjK*Efcq~XkrP=ChmZGq^=V#6L)cs0hA$ZW|;3fgDgKo zcX6^-&A7xV@sq+a45vHvM9!4;Z+O3ZL7W;bWSC0--QcZE+ulZbPgLX#X})l`Wz#3y zLt4k}5hv4R@_?o!TzgUHRhp$vsoD~?!X%SqGw`XLvNq2AiY)72QGmpMr98HiA0 zX}oAnkY$skUL$H9g1v7XCu!B1n>a(d+0ut`mMn&I6dY*;e?yc$U`zXgNJ)t+g_0Uq z3#Dj0TF8HfR>~eif2^#evd3>Ro=wdzsv~MHH=?RXFcci2CxVZNy;0b^pWm%qy!Qi4 z5`9h4PvR7jg&1Yhk%WO1dN4t@g2A|N5dJn!V%Kro;Fh*fu9l-YO3hV))G8uEX;sM_Qlm=nZ{sY%RbmHwgUZA3 z5d5JW5)Z&bA!g$=G3pO!EqP~VXTRBRj{Wuf`%eJ(v1wukS9M%7aNR@(Hw>&4u!@@| zrg6)_Z3B0dx@Mqcpsb^!qsoxq_5)wm7_?IPfFb)VYzu~2*AK*tL9ZpECU13V$96-H zcMo{vD|@t=mGAtRq2`8B$B6{*$}oyak+I{2yhmZT5ySd_#8$}W$G)IQX5+{ced&imtYe+*{csR@V#ilGETyhE zxqai1f8Z8oQDk^>-ZU6=-tyYwZAV4A%aG&h)3IT}!99!G^MC>4W4jg};t>O@GZaQh zB^b8POF>nVVe?FIRkH*)r>fv|dC+mj1!Pz(?d`b}&pvf9=xnJmsr>t%lcrEHhP`B1 zE1eGZrkvV)**X-Sng@%=)O^`^Kj2-OufKq!L#JVi*L(terG_V!NWFBHDN2PNr;HVP zIy3apKu?PX7DZYwkmZo1)*@Fq2Kzj8+qCABP0W#Qjr4h3B#U8zz?mWV6LO>h&wn8E zS}U5ic8siR=c;xt`we*wU!mJt)z&7KQMHY+RjJxjUtp3bB*G#wA+ZXBg6qV53d=B2 qMgfn>s!=8l%E2Wfir_**0tvxsJjEiGi0CEqWl3J9f0^_QuKWS(7bPwL diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrNumericTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrNumericTest.class deleted file mode 100644 index 4813203ae7cc411d767c70e0fae5c8b1e56c8531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1436 zcmbVMO;Zy=5Pg%~WS3oP6^$iSs-hQ{Fvg{l-ME=hSbDVl z8&-Mo?1c}tD9>K}M`}+JA>u*du+u%=)4i`>_sq8+pY{NZ;GTgn1~m*B2uOLg8N;v) zv?H#7y?sYZ)2IOzBhpdTu1W8hj&Ug`bX?alsbNY(f*~~RxQ>`*P@=I6gF5f6afa5E zidt*BDrmA?UcJijaR_w>NC7V7qy1 znG(5qie%oOj`Zp}g_0xWRYWz6IkYL+ewq6WL;rzN!drP+;xfsGU8r!XF7Ska7>k=Z zUJ{PymNk&qSoSJ@jxRZqo6bX34NI^lI?%~5b{uLL+7IeYx`OAquVLE63}#K-#4QtZ zxNTw{3nmt^ByD%7dGXDuDHC@=fR*^%5@C<07$%PcL3W2>{79jaxmsMu0sMX97zX~G z?RNthv^*CwAwx$r*3ka>f?Y0C2TT&&7mF_{c7eLoA8j~OpM<|Ha>RAv)kcUR5=}Oy z-k+>sb!HAFt$QCgM(mHA?zkc&2c~+FK1pk+X2dDd&ANUXU9@93L%{(V%zEhI(8>1t zGXmLdD5-eY8_dw4>P zs5@v%1P8l<>MjfgiBMPQE7UDCPiPS}qV2$Zqp%M@zYh$CTefh5L~Bj7kvPDdzzM>l z5h9%mY(g9cCecjSz{CPtkS2c?t$0fIXGBMl2oZGh71bl_d_-|G=)+l@qq-Jo?Z$Zo zDXtwC&_kSLDSI#3HH=~m7fDlO^{6qUQ?@=_B8K8f;WDleOa0_m$r7b6MtT4PzW|*x BU&a6c diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrPlaintextTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrPlaintextTest.class deleted file mode 100644 index 0a61d5233ddb029e4ff488489464632d7ed04947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1504 zcmbVMO>Y}j6g|&=X$fGL%nM3^F>XJ=$4ay(&X zf?A11CD?SwiXQ+AgjgXeLO*{%e@1uw3EJ~)(^@SOw2PU0-@WI4op)y*{eAZ#fFepZ z1~F!0+(rTuCeHN2#iWe^6fI0yIBQ|r!inLw*=&Bu8(tJI3G~I3&x`_sDV@@e z`dYaS)vUW^MmFmN3ZKt9d)`xFf!M4D_wSP;VtSb7h7 zB~CF~oKqAdqvuZv7z>kg^D}HbKawkqj+_vHK%&nkQ$0H2wu42A4i&UIlvsqT2ScJ3{ z!_?Cq{V0y{B=9DK6FOMzpod7{_B|vj$&7t~WXX|ZcVGzoiInvKvXXSnaz#2;xnejy z8>(%W{_OXM)pKt`flA+&mw8hisjQ1FG9B;wEr=IK6&a1 G6rKW=%x9|r diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrTextTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrTextTest.class deleted file mode 100644 index 887aa6272e6646695d09fb351c3fce3b75858431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmb7ETTc@~6#jab3raAbK#aBj!ik zkAxo+ekA>v3}Fgp5N9wgrIeIrbj<3QWALq7b<100P-5{N26e+O3x?jTRTtZPwW4tH zyjUemBx{#=b%#5a)Z0eYduF)|3t8K#n2z98&vslAJl8DQwVGWwYr^AY?s1cQo?{iw zb=vY`-^&ZvTVXIf+K+7vjFLsNyZi+=tGr$@a}-mrkRP*XWe9D9JFajTlK)Y%nfGNw zP`p~P?J`63(ch9QMNVhI&Ha*Sc$QsvbkMMJyRu#)^Se+%&L; zTMYAELy=^veA|YF+>`}Sqkov!R$O# z@&sOgMo&TM3m!npYG0rhl!%rqs1aXo%hytMsrqvTEfUCWPaGmh)zyy(DQR_3O&-0) zXmU`US=NTNiD6AWgrR^=->B@}&u>kiN%9$*Z2Ba~kL}OZ3%|is_lq_Ubi9q8gF#SldQT;-l=on zR{N1tlke<+;ZfD~+m(zhGd9;w;~Pt-&p%M6P= z2!tbbEeNJhv4^^W%!tMiv*w@al6B?bXDHEwn5+0pkEAxz|_=` zoTZ&bnvss=&cIFw$8#j317{NRWE;Z^NMeC@8WyocAS(DHeRz#@DPIVGK`4yZ`GPhy zz9IbP3|cbMN3=j|F5QRTN9;4=pP(I_5@sAlY$HKfDr1Urg0SOQrc5hzmZH-eG;^zi iDon~nnMPG8Yng7T(o1yfCZVLr*2uF;YmMv>Zv6t>_d^i? diff --git a/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrVersionTest.class b/target/test-classes/org/realtors/rets/common/metadata/attrib/AttrVersionTest.class deleted file mode 100644 index f8198e9b6c4da0ea1f02dcafb5321c4133ad3f17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1732 zcmbVMU2hvj6g}gwT|3*PS?9wLKFdd)ZEDv^+_-Tmq#*@^n-&r*0Z$ueocO%z6_qqrJf1sq@45HPJu`p&^~-MnYB(%l8S4f%3P@o+ zk0or*ppKgcwhA;FX?(Z!y@^}e*iIW?{<&zPY2vntcl6R76YrXMPfvGr+}#3l*wyCy z2KEfx6EFr3-5`{Kz*>74^s0e$`)U}3oT#wc9S#OVzdDf0J$98_-BBty{AMJZ0=e6s z@2NWi>GEnvAhSC>mI8Ba&zJk-!I2CO-J?EN?Dnwh_B(FiX**ubs7GEXuzi7)E>n6( zQRa>eLT~6F%22U@Y$(-dBZ0!+ldc>oZiEItU*XH1Hvb91O=nSKjmVu`MJRXu=g;i-i}lBCz@VMx8%33njc@pk?7Bd@L|O zuINafh%)bM-n5c?~%Uo0{_Sw z?|+f3HqJ{Gd%o(p{V{`h+o|Jhxz$?j;B~$v%Y3K=Uni=Ivn=P-D94v*RrxRUs&fMI z11BlG%rO@&=I{#V*2Dp?;x$?sLaxwD2X7-C?OD#RNPT{S^iRl4G4z87_GR zu0&V@ZxG?lGsJIW#D?=DGCw2BE1r7>!?8^}e}aNz&)Am!PurIwbM^#tj(s^A=Q&QZ zUxCRCmoUq333IIAGDSa+Yq0rh7qNwfL{*J*Ri*UJiFw{-Rhmn|(PdqG3VWJo!g85B zOA+4E#52ZY46dR~j#IuVeQ{&tM?}sLxuk*D$hers@5t@1Tz`s%XIPx(nWZOqPIEl@ mW%fvS#+k&POoB+5YRw7tvKMMEbR+kT-Uzf_arWjEdgfiv zjUEuESlU#`)%@?Z!a&{i^lH1crGpJ;tI3F6_Zv=g(+OPh(_k*zaYKdsXDYs-!-xd( zp^m;~2j=3>4ZRn+z84lyQ!pa!1dsfEk4q6#mvpq=jz~?Mn(sx9>xEDCFABYJr0IL4 zY538O4%nLXu3G}KlT+b@?1}!f#YES5b!}@` zH=?=Ik<#f90k$;(KJ5a~HQjQ;PzTZCPi?2kDI4#y?{t-Th(q^RcEO3JviaijvIP4Y z@6XKnE?}jX9E_yqM$jfeuJ}@R_ILD;2g^?P#urN_tF(!ac~eJt^%XL5*tB|Rb8h&) zOs~qX;x}JDg!+R<23OJ~z{FMBR+4~g1Osw1Z_JX-3%u{Ld61hk<#))wI7IF*@7aX;(5iUD2bV`yv2D1b}px1ImCsP z+|5LaV@~EVQ4zR9F45-}Rhqys$M6bnlja@%N8QCeOk))@G1+Sgjg+i`B{ov#Y)o=T Th012ArA(zvkit#c8Ql6GuyJP4 diff --git a/target/test-classes/org/realtors/rets/examples/RetsGetMetadataExample.class b/target/test-classes/org/realtors/rets/examples/RetsGetMetadataExample.class deleted file mode 100644 index 9596d42c5726f5b4e1da41453680cda6efdfa52e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 zcmb7GS#J|p6#g!8JkDg2fWZV88UkTSSnMPe17;~;975|P5C>>VTRL$jVZfeoXC`dj z+t9tG+e05KUQngJz=M&BM5RhaYJWoiKwm5MsV}A99WMc50(F$ToO93iopaBf-~avT z4uC#bgsdx!5hwzG=PfNOS5Q!3 z2?Y0;mg(&iXz1=aArMH}lZHTB#*(`EW@nkwif9a!FdDsxspugCMc zH671-j%iKrmaYg|?XIIamp2W|^Yx}L=8U3e+7{Kd=JLAhnp0*@mlT2Cda`z*U|aD* z#hJKwsYn-xQc{#ULXP3uGfs|{>&29-FFjfjqJp4%$@PqaK;M%a&-x+~5Z#$3noH~8 zA)ub|ykg1^U7)9)_BmJvYe%WIS*GKJ;kZ618y1$VoRd)G?P=3G?&M|a=jBI0aSfs^ zaej=-Z26p2IpZ3Rr5A{9s7Sys*v=#at0mD@U~`}KGcaJvs#{sVdScQc4ePN%VAK5C zt5itJPnSD~hJvDo*FabHOEi=5xMeto6_W_Xin^mu+m>VG-53*HuHq@nbbYSw7B9w! z)1&F(xDSlLx<}fTK3AfaJ~}d7XGW^&V|WwxrODnMy?uSX%=pof?3e}@o`xBmCzcB; zts$l10yb#4h)W7CYj_=RD0oxDTXc9XURlN+&xNe5&CydGvF9!9F3m@|VgS z$Yv$`s)jEm`ztwojc<4r=EwAy<{+?mE{KtdvqsJn=)_Pl!E!E3)p6V zoMz~>Rqk-?sZV67(vxd#@xEH9Dr&H2SP_vjET$blT8@w}P=Wph^G0F z+{j&=v*6sg=@!HdpWV$d=o7=};aV#nz$R?wt_fSPl}aew(11pMi9sB@jYZ?P(2%)_ zz)-kx_%?#$TQ_gH1tl2>hmwuqrerW02&*MDM+4EuXs`tBI<> zauZ8#BTQ9G!^=vDNbYjZ;r7aA1?Li?B|IfrE0dvU=uV=kA)!XpNYgc3j)o#?f3o>L zHLIj#a|ut+Npjbb)S}v*L`y@WHPRYsxrSs^i?sG9+wPNGEhXtzC+D&Q+^ngonQax< z@BKQfa=a1^+{K8DVlAT@s6=%gdus9BMQ@e8vBrKnxmXG=t#Z`llIRi%$Ks!FAVj#I z!49;DfKWvXzmWIgo@nR3OZ12>m3@NXw~G!T=e;5&2FOo{opR3<$wdBwUXJb5w}Od` zq7AFC5*=90zb>q$mG!jKO-mcFi%H$bBo8vh<4p1tVz9Y(sN*X7@jbTT2hKlYJAOj~ ze^BaA?8IMO|4rIIJa-TKMF0ndiUE3kNVFj>mT}#VJtB&|qJ#V{@_R_zLVk?=ZCocv z-%EOm>jBaSNgu+XIEo{F5q?L{cd^`JtXPHCH_=ufX;*QU9&JN2y}rdrwnL%K$~juB zu41*-U}d#L7A`&CL3~2u2;yIU@sc5lHTpZvj||d=*NE28qr11 U4{#O4LCOaxnd1K;t`{NwA1Ba}6951J diff --git a/target/test-classes/org/realtors/rets/examples/RetsGetObjectExample.class b/target/test-classes/org/realtors/rets/examples/RetsGetObjectExample.class deleted file mode 100644 index c3b6baf95259f92f7c6167d72f1615f65d55ee5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4929 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 MI>}#@^fJW$4{FtFP5=M^ diff --git a/target/test-classes/org/realtors/rets/examples/RetsSearchExample.class b/target/test-classes/org/realtors/rets/examples/RetsSearchExample.class deleted file mode 100644 index b72f879412086ccacda40a6b5866eda2247151ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3379 zcma)8TUQ&`75)xLn$a-agt1Y5OH6`=jU{jrQwuvGU~q7RzzFQpG^K+yhH*wS%FHOX z+oabtNt?7ylQzAjx3pb;P9Ef}uvXib^dUc{5A9Q4+yFs^_aEza3z?|t@t?=zp> z{p7CzM(`I6LntU%)X;)L980*O;;Mo#X^3H2#g|n)r{XK}^t@cYs$fM!JHDpEP_e3_ zsGy`F0aL{_xv$A(U9wsVu50MS3vt*eD{wR%L_vis_ljIzl#8dqN1&oAd0$d-L&Htn zl83LW_=bv?CHRUI_)P`hQt)ko*g4Cwf+q!9Q-fCoB9m^(6zI%Zj+w8PS50rxSha~s z747WWjxcc1K0Bj1b)W6X_PCr>1P&rDwu{>T%W3=#;B!i zSdPH{)N{G(#!E)VHk`FgA@D3`ZA@Ars4%sI(4uXbP7sQmx>+b@imdvk=NM%MMy(jW zf5Y`kECT;>)%0!&#C=A?t$Ib$WB#N~4yy6Y7ptbvu9Ud7OW+Bbb6&7`TAFt_n9d9t}dkWnOl8zrp*AuB(Q+D5qQ!SrQKb>Dr z4^r2>=T=NFV4~WXC#%F}unbnm?y~Poi!}L%0>`ddrd=8t3b)hs?Xmjyczt_9$D7jd zw~*HHBm9`vzN__{8aA6q$4~IKf}iSm2k#0T_}{vns9JW(^jKDtb4&Tf>_a+!hM&vj zJsrQmFBSYs$FK1ki*a%;w=|nCNS5E=eRg|WBh!1r9 z34azCYBqKEVItV?r2~mz2WM&Qfn(LL#($Ye1D@FgWK(-oPTbNobtc2}4P0HCmZFzDMalFVUMd0!S&!j#4 z*j~eONUk-Mg|8x?m2EXrxa9|CnFO~=GkWWmTW)5)?l~X9vYdWKrD8fv!KoemA8c~B z(G$FQC^fSeSq@l3!->uLVpA(p)nLZOKS7nvB(;U%d@2t0a{gIue~(CDD~t6W!VP1`^9jH5pGTchHm768o}kNiEq{ zLvNDT_wzcp1Aj+fR!{0RB+s;egfDF1Ak`mA9IoL=Z+i_#Yj~)JhqqCVks|r~6OVk1 zM|r4ow4Ukc?U49^4=}oo{kRm=K|zUBcu~TG_g{UrL)`w)r^(1aFqe$faDx6!XWNt1 z-f7(C8cMRqGh|1UA&m={M(06ae^TpA$}eo!BPJDag16XrJfWu z4d5(}<4IyBSS8b}lS@qRG86thQ(nRuS}=wxIbOz7cn{33FJWTv3@#hJT6F))xMJ$L*D1>GA8TQex zD7BA5!3MQ|k>?KD@Cveo+Nr5dZKrMT)53Gmsj-2ho=s??0d>hz#d%5sR53|k##!3B zcnVL`^A>c9bM)r|T5*upO)(M?92G;jNL&>Cl=uvx7{9RMm?5Ol!zjJKz!+Z=0?!hP fGj9Jv4zti0y?-K4TpQ-7F+yGQ{J%`N1q=TLM+byn