Skip to content

Commit

Permalink
Add constructor methods to allow additional configuration of RuntimeC…
Browse files Browse the repository at this point in the history
…apability.
  • Loading branch information
pferraro committed May 24, 2017
1 parent 5b1b644 commit 5ac5eca
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 15 deletions.
Expand Up @@ -23,12 +23,11 @@
package org.jboss.as.clustering.controller;


import java.util.stream.Stream;
import java.util.function.UnaryOperator;

import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.capability.RuntimeCapability;
import org.wildfly.clustering.service.BinaryRequirement;
import org.wildfly.clustering.service.Requirement;

/**
* Provides a capability definition provider built from a binary requirement.
Expand All @@ -39,8 +38,21 @@ public class BinaryRequirementCapability implements Capability {
private final RuntimeCapability<Void> definition;
private final BinaryRequirement requirement;

public BinaryRequirementCapability(BinaryRequirement requirement, Requirement... requirements) {
this.definition = RuntimeCapability.Builder.of(requirement.getName(), true, requirement.getType()).addRequirements(Stream.of(requirements).map(Requirement::getName).toArray(String[]::new)).build();
/**
* Creates a new capability based on the specified requirement
* @param requirement the requirement basis
*/
public BinaryRequirementCapability(BinaryRequirement requirement) {
this(requirement, UnaryOperator.identity());
}

/**
* Creates a new capability based on the specified requirement
* @param requirement the requirement basis
* @param configurator configures the capability
*/
public BinaryRequirementCapability(BinaryRequirement requirement, UnaryOperator<RuntimeCapability.Builder<Void>> configurator) {
this.definition = configurator.apply(RuntimeCapability.Builder.of(requirement.getName(), true).setServiceType(requirement.getType())).build();
this.requirement = requirement;
}

Expand Down
Expand Up @@ -23,7 +23,6 @@
package org.jboss.as.clustering.controller;

import java.util.function.UnaryOperator;
import java.util.stream.Stream;

import org.jboss.as.controller.capability.RuntimeCapability;
import org.wildfly.clustering.service.Requirement;
Expand All @@ -39,19 +38,18 @@ public class RequirementCapability implements Capability {
/**
* Creates a new capability based on the specified requirement
* @param requirement the requirement basis
* @param requirements a list of requirements of this capability
*/
public RequirementCapability(Requirement requirement, Requirement... requirements) {
this(requirement, builder -> builder.addRequirements(Stream.of(requirements).map(Requirement::getName).toArray(String[]::new)));
public RequirementCapability(Requirement requirement) {
this(requirement, UnaryOperator.identity());
}

/**
* Creates a new capability based on the specified requirement
* @param requirement the requirement basis
* @param builder configures the capability
* @param configurator configures the capability
*/
public RequirementCapability(Requirement requirement, UnaryOperator<RuntimeCapability.Builder<Void>> builder) {
this.definition = builder.apply(RuntimeCapability.Builder.of(requirement.getName(), requirement.getType())).build();
public RequirementCapability(Requirement requirement, UnaryOperator<RuntimeCapability.Builder<Void>> configurator) {
this.definition = configurator.apply(RuntimeCapability.Builder.of(requirement.getName()).setServiceType(requirement.getType())).build();
}

@Override
Expand Down
Expand Up @@ -22,10 +22,9 @@

package org.jboss.as.clustering.controller;

import java.util.stream.Stream;
import java.util.function.UnaryOperator;

import org.jboss.as.controller.capability.RuntimeCapability;
import org.wildfly.clustering.service.Requirement;
import org.wildfly.clustering.service.UnaryRequirement;

/**
Expand All @@ -41,8 +40,17 @@ public class UnaryRequirementCapability implements Capability {
* @param requirement the unary requirement basis
* @param requirements a list of requirements of this capability
*/
public UnaryRequirementCapability(UnaryRequirement requirement, Requirement... requirements) {
this.definition = RuntimeCapability.Builder.of(requirement.getName(), true, requirement.getType()).addRequirements(Stream.of(requirements).map(Requirement::getName).toArray(String[]::new)).build();
public UnaryRequirementCapability(UnaryRequirement requirement) {
this(requirement, UnaryOperator.identity());
}

/**
* Creates a new capability based on the specified unary requirement
* @param requirement the unary requirement basis
* @param configurator configures the capability
*/
public UnaryRequirementCapability(UnaryRequirement requirement, UnaryOperator<RuntimeCapability.Builder<Void>> configurator) {
this.definition = configurator.apply(RuntimeCapability.Builder.of(requirement.getName(), true).setServiceType(requirement.getType())).build();
}

@Override
Expand Down

0 comments on commit 5ac5eca

Please sign in to comment.