LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAqgKgogKiBDb250cmlidXRvcnM6CiAqICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS5qc3Quc2VydmVyLnRvbWNhdC51aS5pbnRlcm5hbC5lZGl0b3I7CgppbXBvcnQgb3JnLmVjbGlwc2UuanN0LnNlcnZlci50b21jYXQuY29yZS5pbnRlcm5hbC5JVG9tY2F0U2VydmVyOwppbXBvcnQgb3JnLmVjbGlwc2UuanN0LnNlcnZlci50b21jYXQuY29yZS5pbnRlcm5hbC5Ub21jYXRTZXJ2ZXI7CmltcG9ydCBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUuSVNlcnZlcldvcmtpbmdDb3B5OwppbXBvcnQgb3JnLmVjbGlwc2Uud3N0LnNlcnZlci51aS5lZGl0b3IuKjsKLyoqCiAqCiAqLwpwdWJsaWMgY2xhc3MgQ29uZmlndXJhdGlvbk1pbWVFZGl0b3JTZWN0aW9uRmFjdG9yeSBleHRlbmRzIFNlcnZlckVkaXRvclBhZ2VTZWN0aW9uRmFjdG9yeURlbGVnYXRlIHsKCS8qCgkgKiBAc2VlIFNlcnZlckVkaXRvclBhcnRGYWN0b3J5RGVsZWdhdGUjc2hvdWxkRGlzcGxheShJU2VydmVyKQoJICovCglwdWJsaWMgYm9vbGVhbiBzaG91bGRDcmVhdGVTZWN0aW9uKElTZXJ2ZXJXb3JraW5nQ29weSBzZXJ2ZXIpIHsKCQlUb21jYXRTZXJ2ZXIgdG9tY2F0U2VydmVyID0gKFRvbWNhdFNlcnZlcikgc2VydmVyLmdldEFkYXB0ZXIoSVRvbWNhdFNlcnZlci5jbGFzcyk7CgkJdHJ5IHsKCQkJcmV0dXJuIHRvbWNhdFNlcnZlci5nZXRTZXJ2ZXJDb25maWd1cmF0aW9uKCkgIT0gbnVsbDsKCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoKCS8qCgkgKiBAc2VlIFNlcnZlckVkaXRvclBhcnRGYWN0b3J5RGVsZWdhdGUjY3JlYXRlUGFnZSgpCgkgKi8KCXB1YmxpYyBJU2VydmVyRWRpdG9yU2VjdGlvbiBjcmVhdGVTZWN0aW9uKCkgewoJCXJldHVybiBuZXcgQ29uZmlndXJhdGlvbk1pbWVFZGl0b3JTZWN0aW9uKCk7Cgl9Cn0=