LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiCgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIHYxLjAKICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwKoCoKICogQ29udHJpYnV0b3JzOgogKiAgICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCnBhY2thZ2Ugb3JnLmVjbGlwc2UuanN0LnNlcnZlci50b21jYXQuY29yZS5pbnRlcm5hbC54bWwuc2VydmVyNDA7CgppbXBvcnQgb3JnLmVjbGlwc2UuanN0LnNlcnZlci50b21jYXQuY29yZS5pbnRlcm5hbC54bWwuKjsKLyoqCiAqIAogKi8KcHVibGljIGNsYXNzIENvbnRleHQgZXh0ZW5kcyBYTUxFbGVtZW50IHsKCXB1YmxpYyBDb250ZXh0KCkgewoJCS8vIGRvIG5vdGhpbmcKCX0KCglwdWJsaWMgU3RyaW5nIGdldERlYnVnKCkgewoJCXJldHVybiBnZXRBdHRyaWJ1dGVWYWx1ZSgiZGVidWciKTsKCX0KCglwdWJsaWMgU3RyaW5nIGdldERvY0Jhc2UoKSB7CgkJcmV0dXJuIGdldEF0dHJpYnV0ZVZhbHVlKCJkb2NCYXNlIik7Cgl9CgoJcHVibGljIFN0cmluZyBnZXRQYXRoKCkgewoJCXJldHVybiBnZXRBdHRyaWJ1dGVWYWx1ZSgicGF0aCIpOwoJfQoKCXB1YmxpYyBTdHJpbmcgZ2V0UmVsb2FkYWJsZSgpIHsKCQlyZXR1cm4gZ2V0QXR0cmlidXRlVmFsdWUoInJlbG9hZGFibGUiKTsKCX0KCglwdWJsaWMgU3RyaW5nIGdldFNvdXJjZSgpIHsKCQlyZXR1cm4gZ2V0QXR0cmlidXRlVmFsdWUoInNvdXJjZSIpOwoJfQoKCXB1YmxpYyB2b2lkIHNldERlYnVnKFN0cmluZyBkZWJ1ZykgewoJCXNldEF0dHJpYnV0ZVZhbHVlKCJkZWJ1ZyIsIGRlYnVnKTsKCX0KCglwdWJsaWMgdm9pZCBzZXREb2NCYXNlKFN0cmluZyBkb2NCYXNlKSB7CgkJc2V0QXR0cmlidXRlVmFsdWUoImRvY0Jhc2UiLCBkb2NCYXNlKTsKCX0KCglwdWJsaWMgdm9pZCBzZXRQYXRoKFN0cmluZyBwYXRoKSB7CgkJc2V0QXR0cmlidXRlVmFsdWUoInBhdGgiLCBwYXRoKTsKCX0KCglwdWJsaWMgdm9pZCBzZXRSZWxvYWRhYmxlKFN0cmluZyByZWxvYWRhYmxlKSB7CgkJc2V0QXR0cmlidXRlVmFsdWUoInJlbG9hZGFibGUiLCByZWxvYWRhYmxlKTsKCX0KCglwdWJsaWMgdm9pZCBzZXRTb3VyY2UoU3RyaW5nIHNvdXJjZSkgewoJCXNldEF0dHJpYnV0ZVZhbHVlKCJzb3VyY2UiLCBzb3VyY2UpOwoJfQp9