Регистрация  |  Вход

ApexTypeImplementor кто-нибудь работал?

Я никак не могу получить список классов для интерфейса из пакета. Интерфейс в пакете это inner class
Я никак не могу получить список классов для интерфейса из пакета. Интерфейс в пакете это inner class
Может как-то через Metadata API достучаться можно?
Может как-то через Metadata API достучаться можно?
А можешь рассказать что это такое для маленьких?)
А можешь рассказать что это такое для маленьких?)
wilder
Я никак не могу получить список классов для интерфейса из пакета. Интерфейс в пакете это inner class

если память не изменяет, class должен быть как минимум public или Global
[quote="wilder"]Я никак не могу получить список классов для интерфейса из пакета. Интерфейс в пакете это inner class[/quote]

если память не изменяет, class должен быть как минимум public или Global

Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций X.infrastructure.handler
Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
[code]global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }
[/code]

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

[code]global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}
[/code]

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций [b]X.infrastructure.handler[/b]
alex123
Может как-то через Metadata API достучаться можно?

Через метадата я все могу:) но хотелось бы без костылей.

Я даже могу через простой SOQL и REGEX это сделать, но нам же дали ApexTypeImplementor:)
[quote="alex123"]Может как-то через Metadata API достучаться можно?[/quote]

Через метадата я все могу:) но хотелось бы без костылей.

Я даже могу через простой SOQL и REGEX это сделать, но нам же дали ApexTypeImplementor:)
alex123
А можешь рассказать что это такое для маленьких?)

ха-ха, если wilder задает вопрос, то значит это будет жесть, кровь и расчлененка

[quote="alex123"]А можешь рассказать что это такое для маленьких?)[/quote]

ха-ха, если wilder задает вопрос, то значит это будет жесть, кровь и расчлененка

:smiley:
wilder
Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций X.infrastructure.handler


Здесь же нету интерфейсов. ApexTypeImplementor чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс на интерфес - все работает...
[quote="wilder"]Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
[code]global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }
[/code]

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

[code]global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}
[/code]

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций [b]X.infrastructure.handler[/b][/quote]


Здесь же нету интерфейсов. ApexTypeImplementor  чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс на интерфес - все работает...
на самом деле классная штука, особенно если нужно достать все классы которые имплементируют Queueable, Batchable, Schedulable... Не нужно ковыряться с ApexClass.Body
на самом деле классная штука, особенно если нужно достать все классы которые имплементируют Queueable, Batchable, Schedulable... Не нужно ковыряться с ApexClass.Body
alex123
wilder
Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций X.infrastructure.handler


Здесь же нету интерфейсов. ApexTypeImplementor чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс Handler на интерфес - все работает...
[quote="alex123"][quote="wilder"]Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
[code]global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }
[/code]

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

[code]global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}
[/code]

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций [b]X.infrastructure.handler[/b][/quote]


Здесь же нету интерфейсов. ApexTypeImplementor  чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс Handler на интерфес - все работает...[/quote]
капец я нафлудил, сори народ)
капец я нафлудил, сори народ)
alex123
wilder
Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций X.infrastructure.handler


Здесь же нету интерфейсов. ApexTypeImplementor чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс на интерфес - все работает...

я не совсем понял почему я должен что-то менять:)

У меня есть описание интерфейса и есть его имплементация.
ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)
[quote="alex123"][quote="wilder"]Дано

Есть пакет. Префинкс у пакета - X

Есть класс внутри пакета
[code]global with sharing class infrastructure {
   
    global abstract class handler {
        global abstract object execute(map < string, object > data);
    }
 }
[/code]

Пакет установлен на орг, на орге сделана имплементация интерфейса из пакета

[code]global class HLP_customActions {
    global class copyData extends xrl.infrastructure.handler {
        
        public override object execute(map < string, object > data) {
            system.debug(LoggingLevel.Error,'EXECUTE START');
		}
	}
}
[/code]

Так вот мне нужно через ApexTypeImplementor получить список всех классов с имплементаций [b]X.infrastructure.handler[/b][/quote]


Здесь же нету интерфейсов. ApexTypeImplementor  чекает классы которые имплементирую интерфейсы а не те которые расширяют классы.

заменил абс класс на интерфес - все работает...[/quote]

я не совсем понял почему я должен что-то менять:)

У меня есть описание интерфейса и есть его имплементация.
ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)
Сори, я не имел ввиду что ты должен что-то менять. Я хотел сказать что ApexTypeImplementor вытягивает только классы которые имплементирую интерфейс(implements Infrastructure.Handler).Но в твоем примере ты имплементируешь абстрактный класс extends Infrastructure.Handler.
Сори, я не имел ввиду что ты должен что-то менять. Я хотел сказать что ApexTypeImplementor вытягивает только классы которые имплементирую интерфейс([b]implements Infrastructure.Handler[/b]).Но в твоем примере ты имплементируешь абстрактный класс [b]extends Infrastructure.Handler[/b].

wilder
ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)

ApexTypeImplementor вытягивае имплементацию любого интерфейса, а не абстрактного класса
[quote="wilder"]

ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)[/quote]

ApexTypeImplementor вытягивае имплементацию любого интерфейса, а не абстрактного класса
aliaksandr
wilder
ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)

ApexTypeImplementor вытягивае имплементацию любого интерфейса, а не абстрактного класса

Согласен, мой затуп:)

Теперь осталось вспомнить почему я так сделал:)

Похоже пора отдыхать
[quote="aliaksandr"][quote="wilder"]

ApexTypeImplementor должен показывать имплементацию любого интерфейса или я ошибаюсь?:)[/quote]

ApexTypeImplementor вытягивае имплементацию любого интерфейса, а не абстрактного класса[/quote]

Согласен, мой затуп:)

Теперь осталось вспомнить почему я так сделал:)

Похоже пора отдыхать
wilder
Теперь осталось вспомнить почему я так сделал:)

Если не ошибаюсь, то дело было из-за JSON.deserialize
[quote="wilder"]Теперь осталось вспомнить почему я так сделал:)[/quote]

Если не ошибаюсь, то дело было из-за JSON.deserialize