LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDE2IEZ1bmRhY2nzbiBUZWNuYWxpYSBSZXNlYXJjaCAmIElubm92YXRpb24uCiAqCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAqCiAqIENvbnRyaWJ1dG9yczoKICogICBIdWFzY2FyIEVzcGlub3phIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqICAgQWxlamFuZHJhIFJ17XogLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICogICBJZG95YSBEZWwgUu1vIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqICAgTWFyaSBDYXJtZW4gUGFsYWNpb3MgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICogICBBbmdlbCBM83BleiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoqCiAqIEdlbmVyYXRlZCB3aXRoIEFjY2VsZW8KICovCnBhY2thZ2Ugb3JnLmVjbGlwc2Uub3BlbmNlcnQuYXBtLmFzc3VycHJvai5hc3N1cmFuY2Vwcm9qZWN0LnByb3ZpZGVyczsKCmltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOwppbXBvcnQgb3JnLmVjbGlwc2Uub3BlbmNlcnQuYXBtLmFzc3VycHJvai5hc3N1cmFuY2Vwcm9qZWN0LnV0aWwuQXNzdXJhbmNlcHJvamVjdEFkYXB0ZXJGYWN0b3J5OwoKLyoqCiAqIAogKiAKICovCnB1YmxpYyBjbGFzcyBBc3N1cmFuY2Vwcm9qZWN0RUVGQWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBc3N1cmFuY2Vwcm9qZWN0QWRhcHRlckZhY3RvcnkgewoKCS8qKgoJICoge0Bpbmhlcml0RG9jfQoJICogQHNlZSBvcmcuZWNsaXBzZS5vcGVuY2VydC5hcG0uYXNzdXJwcm9qLmFzc3VyYW5jZXByb2plY3QudXRpbC5Bc3N1cmFuY2Vwcm9qZWN0QWRhcHRlckZhY3RvcnkjY3JlYXRlQXNzdXJhbmNlUHJvamVjdEFkYXB0ZXIoKQoJICogCgkgKi8KCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZUFzc3VyYW5jZVByb2plY3RBZGFwdGVyKCkgewoJCXJldHVybiBuZXcgQXNzdXJhbmNlUHJvamVjdFByb3BlcnRpZXNFZGl0aW9uUHJvdmlkZXIoKTsKCX0KCS8qKgoJICoge0Bpbmhlcml0RG9jfQoJICogQHNlZSBvcmcuZWNsaXBzZS5vcGVuY2VydC5hcG0uYXNzdXJwcm9qLmFzc3VyYW5jZXByb2plY3QudXRpbC5Bc3N1cmFuY2Vwcm9qZWN0QWRhcHRlckZhY3RvcnkjY3JlYXRlUGVybWlzc2lvbkNvbmZpZ0FkYXB0ZXIoKQoJICogCgkgKi8KCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZVBlcm1pc3Npb25Db25maWdBZGFwdGVyKCkgewoJCXJldHVybiBuZXcgUGVybWlzc2lvbkNvbmZpZ1Byb3BlcnRpZXNFZGl0aW9uUHJvdmlkZXIoKTsKCX0KCS8qKgoJICoge0Bpbmhlcml0RG9jfQoJICogQHNlZSBvcmcuZWNsaXBzZS5vcGVuY2VydC5hcG0uYXNzdXJwcm9qLmFzc3VyYW5jZXByb2plY3QudXRpbC5Bc3N1cmFuY2Vwcm9qZWN0QWRhcHRlckZhY3RvcnkjY3JlYXRlQXNzZXRzUGFja2FnZUFkYXB0ZXIoKQoJICogCgkgKi8KCXB1YmxpYyBBZGFwdGVyIGNyZWF0ZUFzc2V0c1BhY2thZ2VBZGFwdGVyKCkgewoJCXJldHVybiBuZXcgQXNzZXRzUGFja2FnZVByb3BlcnRpZXNFZGl0aW9uUHJvdmlkZXIoKTsKCX0KCS8qKgoJICoge0Bpbmhlcml0RG9jfQoJICogQHNlZSBvcmcuZWNsaXBzZS5vcGVuY2VydC5hcG0uYXNzdXJwcm9qLmFzc3VyYW5jZXByb2plY3QudXRpbC5Bc3N1cmFuY2Vwcm9qZWN0QWRhcHRlckZhY3RvcnkjY3JlYXRlQmFzZWxpbmVDb25maWdBZGFwdGVyKCkKCSAqIAoJICovCglwdWJsaWMgQWRhcHRlciBjcmVhdGVCYXNlbGluZUNvbmZpZ0FkYXB0ZXIoKSB7CgkJcmV0dXJuIG5ldyBCYXNlbGluZUNvbmZpZ1Byb3BlcnRpZXNFZGl0aW9uUHJvdmlkZXIoKTsKCX0KCn0K