All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.security.fences.config.ConstructorFence Maven / Gradle / Ivy

Go to download

Augments Java's access control by checking that a Maven Project and all its dependencies conform to a policy that specifies which classes/packages can link to which others.

There is a newer version: 1.9-beta
Show newest version
package com.google.security.fences.config;

import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.security.fences.inheritance.InheritanceGraph;
import com.google.security.fences.policy.ApiElement;
import com.google.security.fences.policy.ApiElementType;

/** A fence for a class's constructors. */
public final class ConstructorFence extends Fence {

  @Override
  String getKey() {
    return ApiElement.CONSTRUCTOR_SPECIAL_METHOD_NAME;
  }

  @Override
  void visit(FenceVisitor v, ApiElement el) {
    v.visit(this, el.child(
        ApiElement.CONSTRUCTOR_SPECIAL_METHOD_NAME,
        ApiElementType.CONSTRUCTOR));
  }

  @Override
  public Fence splitDottedNames(ApiElement parentEl, InheritanceGraph g) {
    return this;
  }

  @Override
  public Iterable getChildFences() {
    return ImmutableList.of();
  }

  @Override
  void replaceChildFences(Iterable newChildren) {
    Preconditions.checkArgument(!newChildren.iterator().hasNext());
  }

  @Override
  String getConfigurationElementName() {
    return "constructor";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy