public ResourceType get(String qualifier) { ResourceType type = typeByQualifier.get(qualifier); return type != null ? type : ResourceType.builder(qualifier).build(); }
@Override public String toString() { return root.getQualifier(); }
@Test public void getBooleanProperty_is_not_set() { ResourceType def = ResourceType.builder("qualifier").build(); assertThat(def.getBooleanProperty("test")).isFalse(); }
@Test public void testEqualsAndHashCode() { ResourceType foo1 = ResourceType.builder("FOO").build(); ResourceType foo2 = ResourceType.builder("FOO").build(); ResourceType bar = ResourceType.builder("BAR").build(); assertThat(foo1.equals(foo1)).isTrue(); assertThat(foo1.equals(foo2)).isTrue(); assertThat(foo1.equals(bar)).isFalse(); assertThat(foo1.hashCode()).isEqualTo(foo1.hashCode()); }
@Test public void shouldCreateWithDefaults() { ResourceType def = ResourceType.builder("qualifier") .build(); assertThat(def.getQualifier()).isEqualTo("qualifier"); assertThat(def.getIconPath()).isEqualTo("/images/q/qualifier.png"); assertThat(def.hasSourceCode()).isFalse(); }
@Test public void hasProperty() { ResourceType def = ResourceType.builder("qualifier").build(); assertThat(def.hasProperty("foo")).isFalse(); def = ResourceType.builder("qualifier").setProperty("foo", "bar").build(); assertThat(def.hasProperty("foo")).isTrue(); } }
private boolean isNotDeletable(ComponentDto project) { ResourceType resourceType = resourceTypes.get(project.qualifier()); return resourceType == null || !resourceType.getBooleanProperty("deletable"); } }
/** * Creates an instance of {@link ResourceType} based on all information given to the builder. */ public ResourceType build() { if (isEmpty(iconPath)) { iconPath = "/images/q/" + qualifier + ".png"; } return new ResourceType(this); } }
@Override public boolean apply(@Nullable ResourceType input) { return input != null && input.hasProperty(propertyKey); } }
@Override public boolean apply(@Nullable ResourceType input) { return input != null && Objects.equal(propertyValue, input.getStringProperty(propertyKey)); } }
@Test public void shouldCreate() { ResourceType def = ResourceType.builder("qualifier") .setIconPath("/custom-icon.png") .hasSourceCode() .setProperty("supportsMeasureFilters", "true") .setProperty("anotherProperty", "foo") .build(); assertThat(def.getQualifier()).isEqualTo("qualifier"); assertThat(def.getIconPath()).isEqualTo("/custom-icon.png"); assertThat(def.hasSourceCode()).isTrue(); assertThat(def.getStringProperty("anotherProperty")).isEqualTo("foo"); }
private boolean componentTypeHasProperty(ComponentDto component, String resourceTypeProperty) { ResourceType resourceType = resourceTypes.get(component.qualifier()); return resourceType != null && resourceType.getBooleanProperty(resourceTypeProperty); }
/** * Creates an instance of {@link ResourceType} based on all information given to the builder. */ public ResourceType build() { if (Strings.isNullOrEmpty(iconPath)) { iconPath = "/images/q/" + qualifier + ".png"; } return new ResourceType(this); } }
@Test(expected = IllegalArgumentException.class) public void shouldCheckQualifierLength() { ResourceType.builder("qualifier bigger than 10 characters"); }
public Builder addType(ResourceType type) { requireNonNull(type); checkArgument(!types.contains(type), String.format("%s is already registered", type.getQualifier())); types.add(type); return this; }
@Test public void getBooleanProperty_is_set() { // set with boolean parameter ResourceType def = ResourceType.builder("qualifier").setProperty("test", true).build(); assertThat(def.getBooleanProperty("test")).isTrue(); def = ResourceType.builder("qualifier").setProperty("test", false).build(); assertThat(def.getBooleanProperty("test")).isFalse(); def = ResourceType.builder("qualifier").setProperty("test", "true").build(); assertThat(def.getBooleanProperty("test")).isTrue(); def = ResourceType.builder("qualifier").setProperty("test", "false").build(); assertThat(def.getBooleanProperty("test")).isFalse(); }
private void mockResourceTypeAsValidProject() { ResourceType resourceType = mock(ResourceType.class); when(resourceType.getBooleanProperty(anyString())).thenReturn(true); when(mockResourceTypes.get(anyString())).thenReturn(resourceType); }
/** * Creates an instance of {@link ResourceType} based on all information given to the builder. */ public ResourceType build() { if (isEmpty(iconPath)) { iconPath = "/images/q/" + qualifier + ".png"; } return new ResourceType(this); } }
public ResourceTypesRule setAllQualifiers(String... qualifiers) { Set<ResourceType> resourceTypes = new HashSet<>(); for (String qualifier : qualifiers) { resourceTypes.add(ResourceType.builder(qualifier).setProperty("deletable", true).build()); } allResourceTypes = ImmutableSet.copyOf(resourceTypes); return this; }
public ResourceTypes(ResourceTypeTree[] trees) { requireNonNull(trees); Map<String, ResourceTypeTree> treeMap = new LinkedHashMap<>(); Map<String, ResourceType> typeMap = new LinkedHashMap<>(); Collection<ResourceType> rootsSet = new LinkedHashSet<>(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = unmodifiableMap(new LinkedHashMap<>(treeMap)); typeByQualifier = unmodifiableMap(new LinkedHashMap<>(typeMap)); rootTypes = unmodifiableList(new ArrayList<>(rootsSet)); }