001package co.codewizards.cloudstore.ls.core.invoke.filter;
002
003import static co.codewizards.cloudstore.core.util.AssertUtil.*;
004import co.codewizards.cloudstore.ls.core.invoke.MethodInvocationRequest;
005import co.codewizards.cloudstore.ls.core.invoke.ObjectManager;
006
007public class ExtMethodInvocationRequest {
008
009        private final ObjectManager objectManager;
010        private final MethodInvocationRequest methodInvocationRequest;
011        private final Class<?> targetClass;
012
013        public ExtMethodInvocationRequest(final ObjectManager objectManager, final MethodInvocationRequest methodInvocationRequest, final Class<?> targetClass) {
014                this.objectManager = assertNotNull(objectManager, "objectManager");
015                this.methodInvocationRequest = assertNotNull(methodInvocationRequest, "methodInvocationRequest");
016                this.targetClass = targetClass == null ? methodInvocationRequest.getObject().getClass() : targetClass;
017                assertNotNull(this.targetClass, "this.targetClass");
018        }
019
020        public ObjectManager getObjectManager() {
021                return objectManager;
022        }
023
024        public MethodInvocationRequest getMethodInvocationRequest() {
025                return methodInvocationRequest;
026        }
027
028        public Class<?> getTargetClass() {
029                return targetClass;
030        }
031}