Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
benfortuna committed Jul 28, 2021
1 parent 1d02319 commit fe1ca82
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 19 deletions.
Expand Up @@ -94,9 +94,8 @@ public void startComponent(String name) {
throw new RuntimeException("Components nested too deep");
}

ComponentBuilder<CalendarComponent> componentBuilder =
new ComponentBuilder<>();
componentBuilder.factories(componentFactorySupplier.get()).name(name);
ComponentBuilder<CalendarComponent> componentBuilder = new ComponentBuilder<>(componentFactorySupplier.get());
componentBuilder.name(name);
components.push(componentBuilder);
}

Expand Down Expand Up @@ -159,7 +158,7 @@ public void endProperty(String name) throws URISyntaxException, ParseException,
public void parameter(String name, String value) throws URISyntaxException {
assertProperty(propertyBuilder);

Parameter parameter = new ParameterBuilder().factories(parameterFactorySupplier.get())
Parameter parameter = new ParameterBuilder(parameterFactorySupplier.get())
.name(name).value(value).build();

if (parameter instanceof TzId && tzRegistry != null) {
Expand Down
13 changes: 8 additions & 5 deletions src/main/java/net/fortuna/ical4j/model/ComponentBuilder.java
Expand Up @@ -2,22 +2,25 @@

import net.fortuna.ical4j.model.component.XComponent;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ComponentBuilder<T extends Component> extends AbstractContentBuilder {

private final List<ComponentFactory<?>> factories = new ArrayList<>();
private final List<ComponentFactory<?>> factories;

private String name;

private PropertyList<Property> properties = new PropertyList<>();

private ComponentList<Component> subComponents = new ComponentList<>();

public ComponentBuilder<?> factories(List<ComponentFactory<?>> factories) {
this.factories.addAll(factories);
return this;
public ComponentBuilder() {
this(Collections.emptyList());
}

public ComponentBuilder(List<ComponentFactory<?>> factories) {
this.factories = factories;
}

public ComponentBuilder<?> name(String name) {
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/net/fortuna/ical4j/model/ParameterBuilder.java
Expand Up @@ -4,20 +4,28 @@
import org.apache.commons.codec.DecoderException;

import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* Created by fortuna on 8/09/14.
*/
public class ParameterBuilder extends AbstractContentBuilder {

private List<ParameterFactory<?>> factories = new ArrayList<>();
private final List<ParameterFactory<?>> factories;

private String name;

private String value;

public ParameterBuilder() {
this(Collections.emptyList());
}

public ParameterBuilder(List<ParameterFactory<?>> factories) {
this.factories = factories;
}

public ParameterBuilder factories(List<ParameterFactory<?>> factories) {
this.factories.addAll(factories);
return this;
Expand Down
Expand Up @@ -7,10 +7,10 @@ class ComponentBuilderTest extends Specification {

def 'test build component'() {
given: 'a component builder instance'
ComponentBuilder builder = []
ComponentBuilder builder = [Arrays.asList(new VEvent.Factory())]

and: 'builder is initialised'
builder.factories(Arrays.asList(new VEvent.Factory())).name('vevent')
builder.name('vevent')

when: 'build method called'
Component c = builder.build()
Expand All @@ -21,10 +21,10 @@ class ComponentBuilderTest extends Specification {

def 'test build invalid component'() {
given: 'a component builder instance'
ComponentBuilder builder = []
ComponentBuilder builder = [Arrays.asList(new VEvent.Factory())]

and: 'builder is initialised'
builder.factories(Arrays.asList(new VEvent.Factory())).name('vtodo')
builder.name('vtodo')

when: 'build method called'
Component c = builder.build()
Expand Down
Expand Up @@ -13,10 +13,10 @@ class ParameterBuilderTest extends Specification {

def 'test build parameter'() {
given: 'a parameter builder instance'
ParameterBuilder builder = []
ParameterBuilder builder = [Arrays.asList(new Value.Factory())]

and: 'builder is initialised'
builder.factories(Arrays.asList(new Value.Factory())).name('value').value("test")
builder.name('value').value("test")

when: 'build method called'
Parameter p = builder.build()
Expand All @@ -27,10 +27,10 @@ class ParameterBuilderTest extends Specification {

def 'test build invalid parameter'() {
given: 'a parameter builder instance'
ParameterBuilder builder = []
ParameterBuilder builder = [Arrays.asList(new Value.Factory())]

and: 'builder is initialised'
builder.factories(Arrays.asList(new Value.Factory())).name('type')
builder.name('type')

when: 'build method called'
Parameter p = builder.build()
Expand Down

0 comments on commit fe1ca82

Please sign in to comment.