Package org.rootservices.otter.gateway
Class LocationTranslatorFactory
- java.lang.Object
-
- org.rootservices.otter.gateway.LocationTranslatorFactory
-
public class LocationTranslatorFactory extends java.lang.ObjectResponsible for constructing a LocationTranslator. This is not in OtterAppFactory due to it's complexity
-
-
Constructor Summary
Constructors Constructor Description LocationTranslatorFactory(Shape shape)
-
Method Summary
Modifier and Type Method Description <S,U>
BetweenFlyweight<S,U>betweenFlyweight(java.lang.Class<S> sessionClazz, java.util.Optional<Between<S,U>> authRequired, java.util.Optional<Between<S,U>> authOptional)Construct a flyweight for betweens that will be used when a Target is translated to a Location.protected <S,U>
Betweens<S,U>csrfPrepare(TranslatorAppFactory appFactory)protected <S,U>
Betweens<S,U>csrfProtect(TranslatorAppFactory appFactory)<S extends DefaultSession,U extends DefaultUser>
LocationTranslator<S,U>make(java.lang.Class<S> sessionClazz, java.util.Optional<Between<S,U>> authRequired, java.util.Optional<Between<S,U>> authOptional, java.util.Map<StatusCode,Resource<S,U>> errorResources, java.util.Map<StatusCode,ErrorTarget<S,U>> dispatchErrors, java.util.Map<StatusCode,ErrorTarget<S,U>> defaultDispatchErrors)protected <S,U>
Betweens<S,U>session(TranslatorAppFactory appFactory, java.lang.Class<S> sessionClazz)protected <S,U>
Betweens<S,U>sessionOptional(TranslatorAppFactory appFactory, java.lang.Class<S> sessionClazz)
-
-
-
Constructor Detail
-
LocationTranslatorFactory
public LocationTranslatorFactory(Shape shape)
-
-
Method Detail
-
make
public <S extends DefaultSession,U extends DefaultUser> LocationTranslator<S,U> make(java.lang.Class<S> sessionClazz, java.util.Optional<Between<S,U>> authRequired, java.util.Optional<Between<S,U>> authOptional, java.util.Map<StatusCode,Resource<S,U>> errorResources, java.util.Map<StatusCode,ErrorTarget<S,U>> dispatchErrors, java.util.Map<StatusCode,ErrorTarget<S,U>> defaultDispatchErrors) throws SessionCtorException
- Throws:
SessionCtorException
-
betweenFlyweight
public <S,U> BetweenFlyweight<S,U> betweenFlyweight(java.lang.Class<S> sessionClazz, java.util.Optional<Between<S,U>> authRequired, java.util.Optional<Between<S,U>> authOptional) throws SessionCtorException
Construct a flyweight for betweens that will be used when a Target is translated to a Location. Each target that is translated will use the same flyweight to add csrf, session, and authentication betweens to a Location. Therefore many Locations will use the same betweens instead of creating many identical ones.- Type Parameters:
S- SessionU- User- Parameters:
sessionClazz- The Class of the sessionauthRequired- The between that requires authenticationauthOptional- The between that optionally authenticates.- Returns:
- BetweenFlyweight that will be used the LocationTranslator.
- Throws:
SessionCtorException- if S does not have a copy constructor.
-
csrfPrepare
protected <S,U> Betweens<S,U> csrfPrepare(TranslatorAppFactory appFactory)
-
csrfProtect
protected <S,U> Betweens<S,U> csrfProtect(TranslatorAppFactory appFactory)
-
session
protected <S,U> Betweens<S,U> session(TranslatorAppFactory appFactory, java.lang.Class<S> sessionClazz) throws SessionCtorException
- Throws:
SessionCtorException
-
sessionOptional
protected <S,U> Betweens<S,U> sessionOptional(TranslatorAppFactory appFactory, java.lang.Class<S> sessionClazz) throws SessionCtorException
- Throws:
SessionCtorException
-
-