Skip to content

Commit

Permalink
Allow access to discovered types and functions in delaractive configu…
Browse files Browse the repository at this point in the history
…ration
  • Loading branch information
beikov committed Feb 28, 2022
1 parent f894e47 commit 4feb7e2
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import java.lang.annotation.Annotation;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author Christian Beikov
Expand Down Expand Up @@ -61,6 +62,13 @@ public interface DeclarativeDomainConfiguration extends ServiceProvider {
*/
DeclarativeDomainConfiguration removeDomainType(Class<?> domainTypeClass);

/**
* Returns the registered domain types.
*
* @return the registered domain types
*/
Set<Class<?>> getDomainTypes();

/**
* Adds the given domain functions java class for later analysis to add its functions as domain function to the domain builder.
*
Expand All @@ -86,6 +94,13 @@ public interface DeclarativeDomainConfiguration extends ServiceProvider {
*/
DeclarativeDomainConfiguration removeDomainFunctions(Class<?> domainFunctionsClass);

/**
* Returns the registered domain functions.
*
* @return the registered domain functions
*/
Set<Class<?>> getDomainFunctions();

/**
* Returns the type resolver.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,11 @@ public DeclarativeDomainConfiguration removeDomainFunctions(Class<?> domainFunct
return this;
}

@Override
public Set<Class<?>> getDomainFunctions() {
return domainFunctions.keySet();
}

@Override
public DeclarativeDomainConfiguration addDomainType(Class<?> domainTypeClass) {
domainTypes.put(domainTypeClass, AnnotationUtils.findAnnotation(domainTypeClass, DomainType.class));
Expand All @@ -318,6 +323,11 @@ public DeclarativeDomainConfiguration removeDomainType(Class<?> domainTypeClass)
return this;
}

@Override
public Set<Class<?>> getDomainTypes() {
return domainTypes.keySet();
}

@Override
public Map<String, Object> getProperties() {
return properties;
Expand Down
8 changes: 4 additions & 4 deletions typescript/src/main/typescript/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -646,17 +646,17 @@ export class DomainModel {
}

getOperationTypeResolver(typeName: string, operator: DomainOperator): DomainOperationTypeResolver {
let resolvers = this.operationTypeResolvers[typeName][DomainOperator[operator]];
return resolvers == null ? null : resolvers;
let resolvers = this.operationTypeResolvers[typeName];
return resolvers == null ? null : resolvers[DomainOperator[operator]];
}

getPredicateTypeResolvers(typeName: string): StringMap<DomainPredicateTypeResolver> {
return this.predicateTypeResolvers[typeName];
}

getPredicateTypeResolver(typeName: string, predicate: DomainPredicate): DomainPredicateTypeResolver {
let resolvers = this.predicateTypeResolvers[typeName][DomainPredicate[predicate]];
return resolvers == null ? null : resolvers;
let resolvers = this.predicateTypeResolvers[typeName];
return resolvers == null ? null : resolvers[DomainPredicate[predicate]];
}

private static getType(typeName: string, types: StringMap<DomainType>, collectionTypes: StringMap<CollectionDomainType>): DomainType {
Expand Down

0 comments on commit 4feb7e2

Please sign in to comment.