diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/application/service/ReferenceService.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/application/service/ReferenceService.java index 6f79221c4..dd034e1a8 100644 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/application/service/ReferenceService.java +++ b/backend/src/main/java/de/bund/digitalservice/ris/norms/application/service/ReferenceService.java @@ -1,7 +1,6 @@ package de.bund.digitalservice.ris.norms.application.service; import de.bund.digitalservice.ris.norms.domain.entity.EIdPart; -import de.bund.digitalservice.ris.norms.domain.entity.Mod; import de.bund.digitalservice.ris.norms.domain.entity.Norm; import de.bund.digitalservice.ris.norms.domain.entity.Regelungstext; import de.bund.digitalservice.ris.norms.utils.NodeCreator; @@ -33,16 +32,7 @@ public void findAndCreateReferences(final Norm norm) { * @param regelungstext - the regelungstext to be analyzed */ public void findAndCreateReferences(final Regelungstext regelungstext) { - if (regelungstext.getMods().stream().anyMatch(Mod::containsRef)) { - return; - } - - regelungstext - .getMods() - .forEach(mod -> { - mod.getSecondQuotedText().ifPresent(this::findAndCreateReferencesInNode); - mod.getQuotedStructure().ifPresent(this::findAndCreateReferencesInNode); - }); + findAndCreateReferencesInNode(regelungstext.getDocument()); } private void findAndCreateReferencesInNode(final Node node) { diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Analysis.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Analysis.java deleted file mode 100644 index 9a1b834a1..000000000 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Analysis.java +++ /dev/null @@ -1,129 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import de.bund.digitalservice.ris.norms.utils.NodeCreator; -import de.bund.digitalservice.ris.norms.utils.NodeParser; -import java.util.List; -import java.util.Optional; -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** Class representing the akn:analysis */ -@Getter -@AllArgsConstructor -public class Analysis { - - private final Element element; - - /** - * Extracts a list of active modifications from the document. - * - * @return a list of active modifications. - */ - public List getActiveModifications() { - return NodeParser - .getElementsFromExpression("./activeModifications/textualMod", element) - .stream() - .map(TextualMod::new) - .toList(); - } - - /** - * Extracts a list of passive modifications from the document. - * - * @return a list of passive modifications. - */ - public List getPassiveModifications() { - return NodeParser - .getElementsFromExpression("./passiveModifications/textualMod", element) - .stream() - .map(TextualMod::new) - .toList(); - } - - /** - * Gets the akn:passiveModifications element of the norm, or creates it if it does not yet exist. - * - * @return the akn:passiveModifications element of the norm - */ - public Node getOrCreatePassiveModificationsNode() { - return getPassiveModificationsNode() - .orElseGet(() -> NodeCreator.createElementWithEidAndGuid("akn:passiveModifications", element) - ); - } - - /** - * Gets the akn:passiveModifications element of the norm if it exists. - * - * @return {@link Optional} containing the akn:passiveModifications element if it exists, empty otherwise - */ - public Optional getPassiveModificationsNode() { - return NodeParser.getElementFromExpression("./passiveModifications", element); - } - - /** - * Create a new passive modification element - * - * @param type the type of the textual mod (this is different from the @refersTo property of an - * akn:mod) - * @param sourceHref the href of the source of the textual mod - * @param destinationHref the href of the destination of the textual mod - * @param periodHref the href to the geltungszeitgruppe of the textual mod - * @param destinationUpTo the upTo of the destination of the textual mod - * @return the newly create passive modification - */ - public TextualMod addPassiveModification( - String type, - String sourceHref, - String destinationHref, - String periodHref, - String destinationUpTo - ) { - var passiveModificationsNode = getOrCreatePassiveModificationsNode(); - - var textualMod = NodeCreator.createElementWithEidAndGuid( - "akn:textualMod", - passiveModificationsNode - ); - textualMod.setAttribute("type", type); - passiveModificationsNode.appendChild(textualMod); - - var source = NodeCreator.createElementWithEidAndGuid("akn:source", textualMod); - source.setAttribute("href", sourceHref); - textualMod.appendChild(source); - - var destination = NodeCreator.createElementWithEidAndGuid("akn:destination", textualMod); - destination.setAttribute("href", destinationHref); - if (StringUtils.isNotEmpty(destinationUpTo)) { - destination.setAttribute("upTo", destinationUpTo); - } - textualMod.appendChild(destination); - - var force = NodeCreator.createElementWithEidAndGuid("akn:force", textualMod); - force.setAttribute("period", periodHref); - textualMod.appendChild(force); - - return new TextualMod(textualMod); - } - - /** - * Delete the provided passive modification. If no passive modifications remain after the deletion, the passive - * modifications element is deleted as well. - * - * @param mod the modification to delete - */ - public void deletePassiveModification(TextualMod mod) { - this.getPassiveModificationsNode() - .ifPresent(passiveModsNode -> { - passiveModsNode.removeChild(mod.getElement()); - - // If there are no more passive modifications left after deleting, we'll need to remove the entire element - // as an empty passive mods element would be invalid. - if (NodeParser.isEmptyIgnoringWhitespace(passiveModsNode)) element.removeChild( - passiveModsNode - ); - }); - } -} diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Article.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Article.java index 147983885..5e98d2201 100644 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Article.java +++ b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Article.java @@ -2,7 +2,6 @@ import de.bund.digitalservice.ris.norms.domain.entity.eli.DokumentExpressionEli; import de.bund.digitalservice.ris.norms.utils.NodeParser; -import java.util.List; import java.util.Optional; import java.util.UUID; import lombok.AllArgsConstructor; @@ -105,19 +104,6 @@ public Optional getRefersTo() { return NodeParser.getValueFromExpression("./@refersTo", this.element); } - /** - * Extracts the {@link Mod} for this article. - * - * @return the {@link Mod} - */ - public List getMods() { - return NodeParser - .getElementsFromExpression("./*//mod", this.element) - .stream() - .map(Mod::new) - .toList(); - } - /** * Checks weather the {@link Article} refers to a Geltungszeitregel (which would define when a law e.g. enters * into force) diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Meta.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Meta.java index d40779d9c..8e3c1964d 100644 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Meta.java +++ b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Meta.java @@ -105,35 +105,6 @@ public Lifecycle getOrCreateLifecycle() { } } - /** - * Returns a {@link Analysis} instance from the {@link Meta}. - * - * @return the Analysis node as {@link Analysis} - */ - public Optional getAnalysis() { - return NodeParser.getElementFromExpression("./analysis", element).map(Analysis::new); - } - - /** - * Gets the akn:analysis element of the norm, or creates it if it does not yet exist. - * - * @return the akn:analysis element of the norm - */ - public Analysis getOrCreateAnalysis() { - return getAnalysis() - .orElseGet(() -> { - final var newElement = NodeCreator.createElementWithEidAndGuid("akn:analysis", element); - newElement.setAttribute(SOURCE_ATTIBUTE, ATTRIBUTSEMANTIK_NOCH_UNDEFINIERT); - - // Metadata needs to be in the correct order, so we're inserting it before temporal data, which is the - // element that has to follow the analysis in a valid document. - final var insertInOrderSiblibg = getOrCreateTemporalData().getElement(); - element.insertBefore(newElement, insertInOrderSiblibg); - - return new Analysis(newElement); - }); - } - /** * Gets the akn:proprietary element of the norm, or creates it if it does not yet exist. * diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Mod.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Mod.java deleted file mode 100644 index 109c41162..000000000 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Mod.java +++ /dev/null @@ -1,278 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import de.bund.digitalservice.ris.norms.utils.NodeCreator; -import de.bund.digitalservice.ris.norms.utils.NodeParser; -import java.util.List; -import java.util.Optional; -import java.util.UUID; -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * Class representing an akn:mod. - * - *

DE: Änderungsbefehl - * - *

Currently only "aenderungsbefehl-ersetzen" is supported. - */ -@Getter -@AllArgsConstructor -@EqualsAndHashCode -public class Mod { - - private final Element element; - - private static final String REF_XPATH = "./ref"; - private static final String RREF_XPATH = "./rref"; - - /** - * Returns the eId as {@link String}. - * - * @return The eId of the mod - */ - public String getEid() { - return EId.fromMandatoryNode(getElement()).value(); - } - - /** - * Returns the quoted text that should be replaced by this mod as {@link String}. - * - * @return The text that will be replaced by this mod - */ - public Optional getOldText() { - return NodeParser.getValueFromExpression("normalize-space(./quotedText[1])", this.element); - } - - /** - * Returns the quoted text that should be replaced by this mod as {@link String}. - * - * @return The text that will be replaced by this mod - */ - public String getMandatoryOldText() { - return NodeParser.getValueFromMandatoryNodeFromExpression( - "normalize-space(./quotedText[1])", - this.element - ); - } - - /** - * Sets a quoted text that should be replaced by this mod as {@link String}. - * - * @param replacementText the text that should be replaced by this modification - */ - public void setOldText(String replacementText) { - NodeParser - .getElementFromExpression("./quotedText[1]", this.element) - .orElseThrow() - .setTextContent(replacementText); - } - - /** - * Returns the quoted text that will be the new text after the mod is applied as {@link String}. - * - * @return The text that will replace the old text - */ - public Optional getNewText() { - return NodeParser.getValueFromExpression("normalize-space(./quotedText[2])", this.element); - } - - /** - * Returns the href of the akn:ref of the target law that is modified. - * - * @return The href of the akn:ref of the akn:mod. - */ - public Optional getTargetRefHref() { - return NodeParser.getValueFromExpression(REF_XPATH + "/@href", this.element).map(Href::new); - } - - /** - * Updates the href attribute of akn:ref node within the akn:mode of the body. - * - * @param newHref - the new ELI + eId of the target law - */ - public void setTargetRefHref(final Href newHref) { - NodeParser - .getElementFromExpression(REF_XPATH, this.element) - .orElseThrow() - .setAttribute("href", newHref.toString()); - } - - /** - * Returns the from of the akn:rref of the target law that is modified. - * - * @return The from of the akn:rref of the akn:mod. - */ - public Optional getTargetRrefFrom() { - return NodeParser.getValueFromExpression(RREF_XPATH + "/@from", this.element).map(Href::new); - } - - /** - * Updates the from attribute of akn:rref node within the akn:mode of the body. - * - * @param newFrom - the new ELI + eId of the target law - */ - public void setTargetRrefFrom(final Href newFrom) { - NodeParser - .getElementFromExpression(RREF_XPATH, this.element) - .orElseThrow() - .setAttribute("from", newFrom.toString()); - } - - /** - * Updates the quoted text that will be used to replace the old text once the mod is applied. - * - * @param updatedNewContent - the replacing text - */ - public void setNewText(final String updatedNewContent) { - final Node newContentNode = NodeParser - .getElementFromExpression("./quotedText[2]", this.element) - .orElseThrow(); - List children = NodeParser.nodeListToList(newContentNode.getChildNodes()); - Optional refNode = children - .stream() - .filter(child -> child.getNodeName().equals("akn:ref")) - .filter(Node::hasChildNodes) - .filter(ref -> ref.getFirstChild().getNodeType() == Node.TEXT_NODE) - .findFirst(); - if (refNode.isPresent()) { - children - .stream() - .filter(child -> child.getNodeType() == Node.TEXT_NODE) - .forEach(newContentNode::removeChild); - refNode.get().setTextContent(updatedNewContent); - } else { - newContentNode.setTextContent(updatedNewContent); - } - // Somehow tell the user that the reference might have been changed - } - - /** - * Returns the quoted structure as {@link Node}. - * - * @return The quotedStructure which content will be replaced - */ - public Optional getQuotedStructure() { - return NodeParser.getElementFromExpression("./quotedStructure", this.element); - } - - /** - * Returns the second quoted text as {@link Node}. - * - * @return The second quoted text - */ - public Optional getSecondQuotedText() { - return NodeParser.getElementFromExpression("./quotedText[2]", this.element); - } - - /** - * Checks whether the mod contains an akn:ref - * - * @return true or false - */ - public boolean containsRef() { - final Optional quotedTextNode = getSecondQuotedText(); - final Optional quotedStructureNode = getQuotedStructure(); - if (quotedTextNode.isPresent()) { - return NodeParser.getElementFromExpression(REF_XPATH, quotedTextNode.get()).isPresent(); - } else if (quotedStructureNode.isPresent()) { - return !NodeParser - .getElementsFromExpression(".//quotedStructure//ref", this.element) - .isEmpty(); - } - return false; - } - - /** - * Checks whether a quotedText was used for a substitution. If not it is probably a - * quotedStructure. - * - * @return is it using a quotedText structure - */ - public boolean usesQuotedText() { - return NodeParser.getElementFromExpression("./quotedText", this.element).isPresent(); - } - - /** - * Checks whether a quotedStructure was used for a substitution. - * - * @return is it using a quotedStructure - */ - public boolean usesQuotedStructure() { - return NodeParser.getElementFromExpression("./quotedStructure", this.element).isPresent(); - } - - /** - * Checks whether the mod has a range ref (rref) - * - * @return whether the mod has a range ref (rref) - */ - public boolean hasRref() { - return NodeParser.getElementFromExpression(RREF_XPATH, this.element).isPresent(); - } - - /** - * Returns the upTo of the akn:rref of the target law that is modified. - * - * @return The upTo of the akn:rref of the akn:mod. - */ - public Optional getTargetRrefUpTo() { - return NodeParser.getValueFromExpression("./rref/@upTo", this.element).map(Href::new); - } - - /** - * Updates the range ref UpTo attribute - * - * @param destinationUpTo - the UpTo attribute that should be updated - */ - public void setTargetRrefUpTo(final Href destinationUpTo) { - NodeParser - .getElementFromExpression(RREF_XPATH, this.element) - .orElseThrow() - .setAttribute("upTo", destinationUpTo.toString()); - } - - /** - * Replaces an akn:ref with an akn:rref and updates the href and upTo attributes with the given - * values. It also copies for now the text content of the old node. - * - * @param destinationFrom the new destination from - * @param destinationUpTo the new destination upTo - */ - public void replaceRefWithRref(final Href destinationFrom, final Href destinationUpTo) { - final Node refNode = NodeParser.getElementFromExpression(REF_XPATH, this.element).orElseThrow(); - - final Element rrefElement = NodeCreator.createElement("akn:rref", this.element); - rrefElement.setAttribute("GUID", UUID.randomUUID().toString()); - rrefElement.setAttribute("eId", EId.fromMandatoryNode(refNode).value()); - rrefElement.setAttribute("from", destinationFrom.toString()); - rrefElement.setAttribute("upTo", destinationUpTo.toString()); - - rrefElement.setTextContent(refNode.getTextContent()); - - this.element.replaceChild(rrefElement, refNode); - } - - /** - * Replaces an akn:rref with an akn:ref and updates the href and upTo attributes with a new - * destination href. It also copies for now the text content of the old node. - * - * @param destinationHref the new destination href - */ - public void replaceRrefWithRef(final Href destinationHref) { - final Node rrefNode = NodeParser - .getElementFromExpression(RREF_XPATH, this.element) - .orElseThrow(); - - final Element refElement = NodeCreator.createElement("akn:ref", this.element); - refElement.setAttribute("GUID", UUID.randomUUID().toString()); - refElement.setAttribute("eId", EId.fromMandatoryNode(rrefNode).value()); - refElement.setAttribute("href", destinationHref.toString()); - - refElement.setTextContent(rrefNode.getTextContent()); - - this.element.replaceChild(refElement, rrefNode); - } -} diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Regelungstext.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Regelungstext.java index 1872c5c6a..03d10a381 100644 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Regelungstext.java +++ b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/Regelungstext.java @@ -62,13 +62,4 @@ public List

getArticles() { .map(Article::new) .toList(); } - - /** - * Extracts a list of {@link Mod}s from the getDocument(). - * - * @return a list of {@link Mod}s - */ - public List getMods() { - return getElementsFromExpression("//body//mod", getDocument()).stream().map(Mod::new).toList(); - } } diff --git a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/TextualMod.java b/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/TextualMod.java deleted file mode 100644 index bebf49930..000000000 --- a/backend/src/main/java/de/bund/digitalservice/ris/norms/domain/entity/TextualMod.java +++ /dev/null @@ -1,125 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import de.bund.digitalservice.ris.norms.utils.NodeCreator; -import de.bund.digitalservice.ris.norms.utils.NodeParser; -import java.util.Optional; -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.w3c.dom.Element; - -/** Class representing an akn:textualMod. */ -@Getter -@AllArgsConstructor -public class TextualMod { - - private final Element element; - - /** - * Returns the eId as {@link String}. - * - * @return The eId of the modification - */ - public String getEid() { - return EId.fromMandatoryNode(getElement()).value(); - } - - /** - * Returns the type of modification as {@link String}. - * - * @return The type of the modification - */ - public Optional getType() { - return NodeParser.getValueFromExpression("./@type", this.element); - } - - /** - * Returns the source href as {@link String}. - * - * @return The source href of the modification - */ - public Optional getSourceHref() { - return NodeParser.getValueFromExpression("./source/@href", this.element).map(Href::new); - } - - /** - * Returns the destination href as {@link Href}. - * - * @return The destination href of the modification - */ - public Optional getDestinationHref() { - return NodeParser.getValueFromExpression("./destination/@href", this.element).map(Href::new); - } - - /** - * Returns the destination upTo as {@link Href}. - * - * @return The destination upTo of the modification - */ - public Optional getDestinationUpTo() { - return NodeParser.getValueFromExpression("./destination/@upTo", this.element).map(Href::new); - } - - private Element getOrCreateDestinationNode() { - return NodeParser - .getElementFromExpression("./destination", this.element) - .orElseGet(() -> NodeCreator.createElementWithEidAndGuid("akn:destination", getElement())); - } - - /** - * Updates the href attribute of the destination node within the modification - * - * @param destinationHref - the new destination href of the modification - */ - public void setDestinationHref(final Href destinationHref) { - getOrCreateDestinationNode().setAttribute("href", destinationHref.toString()); - } - - /** - * Updates the upTo attribute of the destination node within the modification - * - * @param destinationUpTo - the destination href of the last to be replaced element - */ - public void setDestinationUpTo(final Href destinationUpTo) { - if (destinationUpTo != null) { - getOrCreateDestinationNode().setAttribute("upTo", destinationUpTo.toString()); - } else { - getOrCreateDestinationNode().removeAttribute("upTo"); - } - } - - /** - * Returns eid of the force as {@link String}. This eid identifies the temporal group of this - * modification. - * - * @return The force eid of the modification - */ - public Optional getForcePeriodEid() { - return NodeParser - .getValueFromExpression("./force/@period", this.element) - .map(Href::new) - .flatMap(Href::getEId); - } - - private Element getOrCreateForceNode() { - return NodeParser - .getElementFromExpression("./force", getElement()) - .orElseGet(() -> NodeCreator.createElementWithEidAndGuid("akn:force", getElement())); - } - - /** - * Updates the period attribute of the force node within the modification - * - * @param periodEid - the eId of the new referenced temporal group - */ - public void setForcePeriodEid(final String periodEid) { - if (periodEid != null) { - getOrCreateForceNode() - .setAttribute( - "period", - new Href.Builder().setEId(periodEid).buildInternalReference().value() - ); - } else { - getOrCreateForceNode().removeAttribute("period"); - } - } -} diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/application/service/ReferenceServiceTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/application/service/ReferenceServiceTest.java index 88feb5002..6284981b1 100644 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/application/service/ReferenceServiceTest.java +++ b/backend/src/test/java/de/bund/digitalservice/ris/norms/application/service/ReferenceServiceTest.java @@ -6,9 +6,7 @@ import de.bund.digitalservice.ris.norms.domain.entity.Norm; import de.bund.digitalservice.ris.norms.domain.entity.Regelungstext; import de.bund.digitalservice.ris.norms.utils.XmlMapper; -import java.util.Set; import org.junit.jupiter.api.Test; -import org.w3c.dom.Node; import org.xmlunit.builder.DiffBuilder; import org.xmlunit.builder.Input; import org.xmlunit.diff.Diff; @@ -17,89 +15,6 @@ class ReferenceServiceTest { final ReferenceService service = new ReferenceService(); - @Test - void itDoesNotLookForReferencesBecauseQuotedTextContainReferencesAlready() { - // Given - final Norm norm = Norm - .builder() - .dokumente( - Set.of( - new Regelungstext( - XmlMapper.toDocument( - """ - - - - - - - Artikel 1 - Änderung des - Bundesverfassungsschutzgesetzes - - - - - - - Das Vereinsgesetz vom 5. August 1964 (BGBl. I S. 593), das zuletzt durch … geändert worden ist, wird wie folgt geändert: - - - - 2. - - - In § 20 Absatz 1 Satz 2 wird die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die Wörter § 9 Absatz 1 Satz 2, Absatz 2 oder 3 ersetzt. - - - - - - - - - - """ - ) - ) - ) - ) - .build(); - Node oldDocument = norm.getRegelungstext1().getDocument().getDocumentElement().cloneNode(true); - - // When - service.findAndCreateReferences(norm); - - // Then - final Diff diff = DiffBuilder - .compare(Input.from(norm.getRegelungstext1().getDocument().getDocumentElement())) - .withTest(Input.from(oldDocument)) - .build(); - assertThat(diff.hasDifferences()).isFalse(); - } - - @Test - void itDoesNotLookForReferencesBecauseQuotedStructureContainReferencesAlready() { - // Given - final Norm norm = Fixtures.loadNormFromDisk("NormWithReferencesFound.xml"); - var oldDocument = norm.getRegelungstext1().getDocument().getDocumentElement().cloneNode(true); - - // When - service.findAndCreateReferences(norm); - - // Then - final Diff diff = DiffBuilder - .compare(Input.from(norm.getRegelungstext1().getDocument().getDocumentElement())) - .withTest(Input.from(oldDocument)) - .build(); - assertThat(diff.hasDifferences()).isFalse(); - } - @Test void ifFindsAndCreatesReferences() { // Given diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/AnalysisTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/AnalysisTest.java deleted file mode 100644 index 4685b43e1..000000000 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/AnalysisTest.java +++ /dev/null @@ -1,342 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import static org.assertj.core.api.Assertions.assertThat; - -import de.bund.digitalservice.ris.norms.utils.NodeParser; -import de.bund.digitalservice.ris.norms.utils.XmlMapper; -import org.junit.jupiter.api.Test; - -class AnalysisTest { - - @Test - void getActiveModifications() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - - - - - - """ - ) - ); - - // then - assertThat(analysis.getActiveModifications()).hasSize(2); - } - - @Test - void getActiveModificationsEmpty() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - """ - ) - ); - - // then - assertThat(analysis.getActiveModifications()).isEmpty(); - } - - @Test - void getPassiveModifications() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - - - - - - """ - ) - ); - - // then - assertThat(analysis.getPassiveModifications()).hasSize(2); - } - - @Test - void getPassiveModificationsEmpty() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - """ - ) - ); - - // then - assertThat(analysis.getPassiveModifications()).isEmpty(); - } - - @Test - void getPassiveModificationsNode() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - - - - - - """ - ) - ); - - // when - final var passiveModificationsNode = analysis.getPassiveModificationsNode(); - - // then - assertThat(passiveModificationsNode).isNotEmpty(); - assertThat(NodeParser.getValueFromExpression("@GUID", passiveModificationsNode.get())) - .contains("77aae58f-06c9-4189-af80-a5f3ada6432c"); - } - - @Test - void getPassiveModificationsNodeEmpty() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - """ - ) - ); - - // when - final var passiveModificationsNode = analysis.getPassiveModificationsNode(); - - // then - assertThat(passiveModificationsNode).isEmpty(); - } - - @Test - void itShouldCreatesThePassiveModificationsNodeIfItDoesNotExist() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - """ - ) - ); - - // when - final var passiveModificationsNode = analysis.getOrCreatePassiveModificationsNode(); - - // then - assertThat(passiveModificationsNode).isNotNull(); - assertThat(analysis.getOrCreatePassiveModificationsNode()).isEqualTo(passiveModificationsNode); - } - - @Test - void itShouldFindThePassiveModificationsNodeIfItExists() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - - - - - - """ - ) - ); - - // when - final var passiveModificationsNode = analysis.getOrCreatePassiveModificationsNode(); - - // then - assertThat(passiveModificationsNode).isNotNull(); - assertThat(NodeParser.getValueFromExpression("@GUID", passiveModificationsNode)) - .contains("77aae58f-06c9-4189-af80-a5f3ada6432c"); - } - - @Test - void itShouldCreateANewPassiveModificationWithoutUpTo() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - """ - ) - ); - - assertThat(analysis.getPassiveModifications()).hasSize(1); - analysis.addPassiveModification( - "substitution", - "eli/bund/bgbl-1/2017/s419/2017-03-15/1/deu/regelungstext-1/hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1.xml", - "#hauptteil-1_art-20_abs-1/100-126", - "#meta-1_geltzeiten-1_geltungszeitgr-2", - null - ); - assertThat(analysis.getPassiveModifications()).hasSize(2); - - final TextualMod addedPassiveMod = analysis.getPassiveModifications().getLast(); - - assertThat(addedPassiveMod.getSourceHref()) - .contains( - new Href( - "eli/bund/bgbl-1/2017/s419/2017-03-15/1/deu/regelungstext-1/hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1.xml" - ) - ); - assertThat(addedPassiveMod.getType()).contains("substitution"); - assertThat(addedPassiveMod.getDestinationHref()) - .contains(new Href("#hauptteil-1_art-20_abs-1/100-126")); - assertThat(addedPassiveMod.getForcePeriodEid()) - .contains("meta-1_geltzeiten-1_geltungszeitgr-2"); - } - - @Test - void itShouldCreateANewPassiveModificationWithUpTo() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - """ - ) - ); - - assertThat(analysis.getPassiveModifications()).hasSize(1); - analysis.addPassiveModification( - "substitution", - "eli/bund/bgbl-1/2017/s419/2017-03-15/1/deu/regelungstext-1/hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1.xml", - "#hauptteil-1_art-20_abs-1", - "#meta-1_geltzeiten-1_geltungszeitgr-2", - "#hauptteil-1_art-20_abs-3" - ); - assertThat(analysis.getPassiveModifications()).hasSize(2); - - final TextualMod addedPassiveMod = analysis.getPassiveModifications().getLast(); - - assertThat(addedPassiveMod.getSourceHref()) - .contains( - new Href( - "eli/bund/bgbl-1/2017/s419/2017-03-15/1/deu/regelungstext-1/hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1.xml" - ) - ); - assertThat(addedPassiveMod.getType()).contains("substitution"); - assertThat(addedPassiveMod.getDestinationHref()) - .contains(new Href("#hauptteil-1_art-20_abs-1")); - assertThat(addedPassiveMod.getDestinationUpTo()) - .contains(new Href("#hauptteil-1_art-20_abs-3")); - assertThat(addedPassiveMod.getForcePeriodEid()) - .contains("meta-1_geltzeiten-1_geltungszeitgr-2"); - } - - @Test - void itShouldDeleteAPassiveModificationsNodeIfItExists() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - - - - - - """ - ) - ); - - // when - final var passiveModifications = analysis.getPassiveModifications(); - analysis.deletePassiveModification(passiveModifications.getFirst()); - - // then - assertThat(analysis.getPassiveModifications()).hasSize(1); - assertThat(analysis.getPassiveModifications().getFirst().getEid()) - .isEqualTo("meta-1_analysis-1_activemod-2_textualmod-1"); - } - - @Test - void itShouldDeletePassiveModificationsIfItIsEmptyAfterDeletingAPassiveModification() { - final Analysis analysis = new Analysis( - XmlMapper.toElement( - """ - - - - - - - - - - """ - ) - ); - - // when - final var passiveModifications = analysis.getPassiveModifications(); - analysis.deletePassiveModification(passiveModifications.getFirst()); - - // then - assertThat(analysis.getPassiveModificationsNode()).isEmpty(); - } -} diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ArticleTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ArticleTest.java index ba193a581..e1f56817a 100644 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ArticleTest.java +++ b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ArticleTest.java @@ -200,206 +200,4 @@ void getRefersTo() { // then assertThat(eli).isEqualTo(expectedRefersTo); } - - @Test - void getMods() { - // given - String articleString = - """ - - Artikel 1 - - Änderung des Vereinsgesetzes - - - - - - - - Das Vereinsgesetz vom - 5. August 1964 (BGBl. I S. 593), das zuletzt - durch … geändert worden ist, wird wie folgt geändert: - - - - - - 2. - - - - In - § 20 Absatz 1 Satz 2 - wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 - durch die - Wörter - § 9 Absatz 1 Satz 2, Absatz 2 oder 3 - - ersetzt. - - - - - - - - """; - - var article = new Article(toElement(articleString)); - var expectedModEId = - "hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1"; - - // when - var mod = article.getMods(); - - // then - assertThat(mod).isNotEmpty(); - assertThat(mod.get(0).getEid()).isEqualTo(expectedModEId); - } - - @Test - void get2Mods() { - // given - String articleString = - """ - - Artikel 1 - - Änderung des Vereinsgesetzes - - - - - - - - Das Vereinsgesetz vom - 5. August 1964 (BGBl. I S. 593), das zuletzt - durch … geändert worden ist, wird wie folgt geändert: - - - - - - 2. - - - - In - § 20 Absatz 1 Satz 2 - wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 - durch die - Wörter - § 9 Absatz 1 Satz 2, Absatz 2 oder 3 - - ersetzt. - - In - § 20 Absatz 1 Satz 2 - wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 - durch die - Wörter - § 9 Absatz 1 Satz 2, Absatz 2 oder 3 - - ersetzt. - - - - - - - - """; - - var article = new Article(toElement(articleString)); - var expectedModEId = - "hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1"; - - // when - var mods = article.getMods(); - - // then - assertThat(mods).isNotEmpty().hasSize(2); - assertThat(mods.get(0).getEid()).isEqualTo(expectedModEId); - } } diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/MetaTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/MetaTest.java index ea7aa320f..c5fe49687 100644 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/MetaTest.java +++ b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/MetaTest.java @@ -3,12 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import de.bund.digitalservice.ris.norms.utils.NodeParser; import de.bund.digitalservice.ris.norms.utils.XmlMapper; import de.bund.digitalservice.ris.norms.utils.exceptions.MandatoryNodeNotFoundException; -import java.util.Optional; import org.junit.jupiter.api.Test; -import org.w3c.dom.Node; class MetaTest { @@ -214,112 +211,6 @@ void getTemporalDataCreate() { assertThat(meta.getTemporalData()).isNotNull(); } - @Test - void getAnalysis() { - final Meta meta = new Meta( - XmlMapper.toElement( - """ - - - - - - - - - - - - """ - ) - ); - - final Optional analysis = meta.getAnalysis(); - - assertThat(analysis).isNotEmpty(); - } - - @Test - void getAnalysisEmpty() { - final Meta meta = new Meta( - XmlMapper.toElement( - """ - - - - - - - - - - - """ - ) - ); - - final Optional analysis = meta.getAnalysis(); - - assertThat(analysis).isEmpty(); - } - - @Test - void getAnalysisCreate() { - final Meta meta = new Meta( - XmlMapper.toElement( - """ - - - - - - - - - - - """ - ) - ); - - final Analysis analysis = meta.getOrCreateAnalysis(); - - assertThat(analysis).isNotNull(); - assertThat(meta.getAnalysis()).isNotEmpty(); - } - - @Test - void insertsAnalysisInOrder() { - final Meta meta = new Meta( - XmlMapper.toElement( - """ - - - - - - - - - - - - """ - ) - ); - - meta.getOrCreateAnalysis(); - final var children = NodeParser - .nodeListToList(meta.getElement().getChildNodes()) - .stream() - .filter(node -> node.getNodeType() != Node.TEXT_NODE) - .toList(); - - assertThat(children.getFirst().getNodeName()).isEqualTo("akn:identification"); - assertThat(children.get(1).getNodeName()).isEqualTo("akn:analysis"); - assertThat(children.get(2).getNodeName()).isEqualTo("akn:temporalData"); - } - @Test void getLifecycle() { final Meta meta = new Meta( diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ModTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ModTest.java deleted file mode 100644 index 2d6a54c8e..000000000 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/ModTest.java +++ /dev/null @@ -1,431 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import static org.assertj.core.api.Assertions.assertThat; - -import de.bund.digitalservice.ris.norms.utils.NodeParser; -import de.bund.digitalservice.ris.norms.utils.XmlMapper; -import java.util.Optional; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -class ModTest { - - private static final String QUOTED_TEXT_MOD = - """ - In § 20 Absatz 1 Satz 2 wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die - Wörter § 9 Absatz 1 Satz 2, Absatz 2 oder 3 - ersetzt. - """; - - private static final String QUOTED_STRUCTURE_REF_MOD = - """ - Der - Titel des Gesetzes wird ersetzt durch: - - - - Fiktives Beispielgesetz für das Ersetzen von Strukturen und Gliederungseinheiten mit Änderungsbefehlen - (Strukturänderungsgesetz) - - - - - """; - - private static final String QUOTED_STRUCTURE_RREF_MOD = - """ - Der - Titel des Gesetzes wird ersetzt durch: - - - - Fiktives Beispielgesetz für das Ersetzen von Strukturen und Gliederungseinheiten mit Änderungsbefehlen - (Strukturänderungsgesetz) - - - - - """; - - private Mod quotedTextMod; - private Mod quotedStructureRefMod; - private Mod quotedStructureRrefMod; - - @BeforeEach - void setUp() { - quotedTextMod = new Mod(XmlMapper.toElement(QUOTED_TEXT_MOD)); - quotedStructureRefMod = new Mod(XmlMapper.toElement(QUOTED_STRUCTURE_REF_MOD)); - quotedStructureRrefMod = new Mod(XmlMapper.toElement(QUOTED_STRUCTURE_RREF_MOD)); - } - - @Test - void getEid() { - // when - var eid = quotedTextMod.getEid(); - - // then - assertThat(eid) - .isEqualTo("hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1"); - } - - @Test - void getOldText() { - // when - var oldText = quotedTextMod.getOldText(); - - // then - assertThat(oldText).contains("§ 9 Abs. 1 Satz 2, Abs. 2"); - } - - @Test - void getNewText() { - // when - var newContent = quotedTextMod.getNewText(); - - // then - assertThat(newContent).contains("§ 9 Absatz 1 Satz 2, Absatz 2 oder 3"); - } - - @Test - void setNewText() { - final String QUOTED_TEXT_MOD_WITH_REF = - """ - In § 20 Absatz 1 Satz 2 wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die - Wörter - 1. Beispiel - - ersetzt. - """; - - Mod quotedTextModWithRef = new Mod(XmlMapper.toElement(QUOTED_TEXT_MOD_WITH_REF)); - // when - quotedTextModWithRef.setNewText("new text"); - var newText = quotedTextModWithRef.getNewText(); - - // then - assertThat(newText).contains("new text"); - } - - @Test - void setNewTextWithGuessedReference() { - final String QUOTED_TEXT_MOD_WITH_REF = - """ - In § 20 Absatz 1 Satz 2 wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die - Wörter - 1. Beispiel - - ersetzt. - """; - - Mod quotedTextModWithRef = new Mod(XmlMapper.toElement(QUOTED_TEXT_MOD_WITH_REF)); - // when - quotedTextModWithRef.setNewText("new text"); - var newText = quotedTextModWithRef.getNewText(); - Node ref = quotedTextModWithRef.getSecondQuotedText().get().getFirstChild(); - - // then - assertThat(newText).contains("new text"); - assertThat(ref).isNotNull(); - assertThat(ref.getNodeName()).isEqualTo("akn:ref"); - } - - @Test - void getTargetRefHref() { - // when - var eid = quotedTextMod.getTargetRefHref(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()) - .contains( - "eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-20_abs-1/100-126.xml" - ); - } - - @Test - void setTargetRefHref() { - // when - quotedTextMod.setTargetRefHref(new Href("new-target-href")); - var eid = quotedTextMod.getTargetRefHref(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()).contains("new-target-href"); - } - - @Test - void getTargetRrefFrom() { - // when - var eid = quotedStructureRrefMod.getTargetRrefFrom(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()) - .contains( - "eli/bund/bgbl-1/1002/1/1002-01-01/1/deu/regelungstext-1/einleitung-1_doktitel-1.xml" - ); - } - - @Test - void setTargetRrefFrom() { - // when - quotedStructureRrefMod.setTargetRrefFrom(new Href("new-target-href")); - var eid = quotedStructureRrefMod.getTargetRrefFrom(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()).contains("new-target-href"); - } - - @Test - void getTargetRrefUpTo() { - // when - var eid = quotedStructureRrefMod.getTargetRrefUpTo(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()) - .contains( - "eli/bund/bgbl-1/1002/1/1002-01-01/1/deu/regelungstext-1/einleitung-1_doktitel-3.xml" - ); - } - - @Test - void setTargetRrefUpTo() { - // when - quotedStructureRrefMod.setTargetRrefUpTo(new Href("new-target-upTo")); - var eid = quotedStructureRrefMod.getTargetRrefUpTo(); - - // then - assertThat(eid).isPresent(); - assertThat(eid.get().value()).contains("new-target-upTo"); - } - - @Test - void usesQuotedText() { - // when - var isQuoted = quotedTextMod.usesQuotedText(); - - // then - assertThat(isQuoted).isTrue(); - } - - @Test - void getSecondQuotedText() { - // when - final Optional secondQuotedText = quotedTextMod.getSecondQuotedText(); - - // then - assertThat(secondQuotedText).isPresent(); - assertThat(secondQuotedText.get().getAttribute("GUID")) - .isEqualTo("dd25bdb6-4ef4-4ef5-808c-27579b6ae196"); - assertThat(secondQuotedText.get().getAttribute("eId")) - .isEqualTo( - "hauptteil-1_art-1_abs-1_untergl-1_listenelem-2_inhalt-1_text-1_ändbefehl-1_quottext-2" - ); - assertThat(secondQuotedText.get().getTextContent()) - .isEqualTo("§ 9 Absatz 1 Satz 2, Absatz 2 oder 3"); - } - - @Test - void usesQuotedStructure() { - // when - var isStructure = quotedStructureRefMod.usesQuotedStructure(); - - // then - assertThat(isStructure).isTrue(); - } - - @Test - void getQuotedStructure() { - // when - final Optional quotedStructure = quotedStructureRefMod.getQuotedStructure(); - - // then - assertThat(quotedStructure).isPresent(); - assertThat(quotedStructure.get().getAttribute("GUID")) - .isEqualTo("9cb0572a-2933-473e-823f-5541ab360561"); - assertThat(quotedStructure.get().getAttribute("eId")) - .isEqualTo( - "hauptteil-1_art-1_abs-1_untergl-1_listenelem-1_inhalt-1_text-1_ändbefehl-1_quotstruct-1" - ); - assertThat(quotedStructure.get().getChildNodes().getLength()).isGreaterThan(1); - } - - @Test - void quotedTextDoesNotContainRef() { - assertThat(quotedTextMod.containsRef()).isFalse(); - } - - @Test - void quotedTextContainsRef() { - final Mod mod = new Mod( - XmlMapper.toElement( - """ - In § 20 Absatz 1 Satz 2 wird - die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die - Wörter § 9 Absatz 1 Satz 2, Absatz 2 oder 3 - ersetzt. - """ - ) - ); - - assertThat(mod.containsRef()).isTrue(); - } - - @Test - void quotedStructureDoesNotContainRef() { - assertThat(quotedStructureRefMod.containsRef()).isFalse(); - } - - @Test - void quotedStructureContainsRef() { - final Mod mod = new Mod( - XmlMapper.toElement( - """ - Der - Titel des Gesetzes wird ersetzt durch: - - - - Fiktives Beispielgesetz für das Ersetzen von Strukturen und Gliederungseinheiten mit Änderungsbefehlen - (Strukturänderungsgesetz) - - - - - """ - ) - ); - - assertThat(mod.containsRef()).isTrue(); - } - - @Test - void hasRref() { - String rangeRefString = - """ - Der - § 9 Absatz 1 bis 4 des Gesetzes wird ersetzt durch: - - """; - quotedStructureRefMod = new Mod(XmlMapper.toElement(rangeRefString)); - - // when - var result = quotedStructureRefMod.hasRref(); - - // then - assertThat(result).isTrue(); - } - - @Test - void hasRrefFalse() { - String rangeRefString = - """ - Der - Titel des Gesetzes wird ersetzt - - """; - quotedStructureRefMod = new Mod(XmlMapper.toElement(rangeRefString)); - - // when - var result = quotedStructureRefMod.hasRref(); - - // then - assertThat(result).isFalse(); - } - - @Test - void setOldText() { - // given - var oldText = quotedTextMod.getOldText(); - assertThat(oldText).contains("§ 9 Abs. 1 Satz 2, Abs. 2"); - - // when - quotedTextMod.setOldText("new old text"); - - // then - var updatedText = quotedTextMod.getOldText(); - assertThat(updatedText).contains("new old text"); - } - - @Test - void replaceRefWithRref() { - quotedStructureRefMod.replaceRefWithRref( - new Href("new-destination-href"), - new Href("new-destination-upto") - ); - - final Optional targetRefHref = quotedStructureRefMod.getTargetRefHref(); - assertThat(targetRefHref).isEmpty(); - - final Optional targetRrefHref = quotedStructureRefMod.getTargetRrefFrom(); - assertThat(targetRrefHref).isPresent(); - assertThat(targetRrefHref.get().value()).isEqualTo("new-destination-href"); - - final Optional targetRrefUpTo = quotedStructureRefMod.getTargetRrefUpTo(); - assertThat(targetRrefUpTo).isPresent(); - assertThat(targetRrefUpTo.get().value()).isEqualTo("new-destination-upto"); - - assertThat( - NodeParser.getValueFromExpression("./rref/@GUID", quotedStructureRefMod.getElement()) - ) - .isPresent(); - } - - @Test - void replaceRrefWithRef() { - quotedStructureRrefMod.replaceRrefWithRef(new Href("new-destination-href")); - - final Optional targetRrefHref = quotedStructureRrefMod.getTargetRrefFrom(); - assertThat(targetRrefHref).isEmpty(); - - final Optional targetRefHref = quotedStructureRrefMod.getTargetRefHref(); - assertThat(targetRefHref).isPresent(); - assertThat(targetRefHref.get().value()).isEqualTo("new-destination-href"); - - assertThat( - NodeParser.getValueFromExpression("./ref/@GUID", quotedStructureRrefMod.getElement()) - ) - .isPresent(); - } -} diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/RegelungstextTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/RegelungstextTest.java index f4560ee5a..8f232f35e 100644 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/RegelungstextTest.java +++ b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/RegelungstextTest.java @@ -1110,20 +1110,6 @@ void deleteTimeBoundary() { .contains("#" + timeBoundaries.get(0).getEventRefEid()); } - @Test - void getMods() { - // given - final var regelungstext = Fixtures.loadRegelungstextFromDisk("NormWithMods.xml"); - - // when - final var mods = regelungstext.getMods(); - - // then - assertThat(mods).hasSize(1); - assertThat(mods.getFirst().getEid()) - .contains("hauptteil-1_art-1_abs-1_untergl-1_listenelem-1_inhalt-1_text-1_ändbefehl-1"); - } - @Test void getStartDateForTemporalGroup() { // given @@ -1194,26 +1180,6 @@ void itShouldCreatesANewElement() { } } - @Nested - class getOrCreateAnalysisNode { - - @Test - void itShouldCreatesTheAnalysisNodeIfItDoesNotExist() { - // given - final var regelungstext = Fixtures.loadRegelungstextFromDisk("SimpleNorm.xml"); - - // when - final var analysis = regelungstext.getMeta().getOrCreateAnalysis(); - - // then - assertThat(analysis).isNotNull(); - assertThat( - NodeParser.getNodeFromExpression("//act/meta/analysis", regelungstext.getDocument()) - ) - .contains(analysis.getElement()); - } - } - @Nested class getOrCreateTemporalDataNode { diff --git a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/TextualModTest.java b/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/TextualModTest.java deleted file mode 100644 index dbeb84bb2..000000000 --- a/backend/src/test/java/de/bund/digitalservice/ris/norms/domain/entity/TextualModTest.java +++ /dev/null @@ -1,157 +0,0 @@ -package de.bund.digitalservice.ris.norms.domain.entity; - -import static org.assertj.core.api.Assertions.assertThat; - -import de.bund.digitalservice.ris.norms.utils.XmlMapper; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -class TextualModTest { - - private static final String COMMON_XML = - """ - - - - - - """; - - private TextualMod textualMod; - - @BeforeEach - void setUp() { - textualMod = new TextualMod(XmlMapper.toElement(COMMON_XML)); - } - - @Test - void getEid() { - // when - var eid = textualMod.getEid(); - - // then - assertThat(eid).isEqualTo("meta-1_analysis-1_activemod-1_textualmod-1"); - } - - @Test - void getType() { - // when - var type = textualMod.getType(); - - // then - assertThat(type).contains("substitution"); - } - - @Test - void getSourceHref() { - // when - var sourceHref = textualMod.getSourceHref(); - - // then - assertThat(sourceHref) - .contains( - new Href("#hauptteil-1_art-1_abs-1_untergl-1_listenelem-1_inhalt-1_text-1_ändbefehl-1") - ); - } - - @Test - void getDestinationHref() { - // when - var destinationHref = textualMod.getDestinationHref(); - - // then - assertThat(destinationHref) - .contains( - new Href( - "eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-126.xml" - ) - ); - } - - @Test - void setDestinationHref() { - // when - textualMod.setDestinationHref( - new Href("eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-130.xml") - ); - var destinationHref = textualMod.getDestinationHref(); - - // then - assertThat(destinationHref) - .contains( - new Href( - "eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-130.xml" - ) - ); - } - - @Test - void setDestinationUpto() { - // when - textualMod.setDestinationUpTo( - new Href("eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-130.xml") - ); - var destinationUpTo = textualMod.getDestinationUpTo(); - - // then - assertThat(destinationUpTo) - .contains( - new Href( - "eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-130.xml" - ) - ); - } - - @Test - void deleteDestinationUpto() { - // given - textualMod.setDestinationUpTo( - new Href("eli/bund/bgbl-1/1964/s593/1964-08-05/1/deu/regelungstext-1/art-9_abs-3/100-130.xml") - ); - - // when - textualMod.setDestinationUpTo(null); - - // then - var destinationUpTo = textualMod.getDestinationUpTo(); - assertThat(destinationUpTo).isNotPresent(); - } - - @Test - void ignoreDeleteInDestinationUptoWhenNotPresent() { - // when - textualMod.setDestinationUpTo(null); - - // then - var destinationUpTo = textualMod.getDestinationUpTo(); - assertThat(destinationUpTo).isNotPresent(); - } - - @Test - void getForcePeriodEid() { - // when - var forcePeriodEid = textualMod.getForcePeriodEid(); - - // then - assertThat(forcePeriodEid).contains("meta-1_geltzeiten-1_geltungszeitgr-1"); - } - - @Test - void setForcePeriodEid() { - // when - textualMod.setForcePeriodEid("new-period-eid"); - var forcePeriodEid = textualMod.getForcePeriodEid(); - - // then - assertThat(forcePeriodEid).contains("new-period-eid"); - } -} diff --git a/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesFound.xml b/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesFound.xml index 83b9999b8..e3790201c 100644 --- a/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesFound.xml +++ b/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesFound.xml @@ -285,50 +285,13 @@ eId="hauptteil-1_art-1_bezeichnung-1"> Artikel - 1 + eId="hauptteil-1_art-1_überschrift-1">Artikel + 1 - - - - - - Die - Seefischerei-Bußgeldverordnung vom 16. Juni 1998 (BGBl. I S. 1355), die zuletzt durch - Artikel 1 der Verordnung vom 7. Februar 2018 (BGBl. I S. 196) geändert worden ist, wird - wie folgt geändert: - - - - - 1. - - - - - Die - §§ 5 bis 41 - werden durch die folgenden §§ 5 bis 39 ersetzt: - - - + - - - - § 6 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 2056/2001 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 2056/2001 der Kommission vom 19. Oktober 2001 mit - zusätzlichen technischen Maßnahmen zur Wiederauffüllung der - Kabeljaubestände in der Nordsee und westlich von Schottland - (ABl. L 277 vom 20.10.2001, S. 13), die durch die - Durchführungsverordnung (EU) 2015/1897 (ABl. L 277 vom - 22.10.2015, S. 11) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 4 Nummer 5 ein dort genanntes Netz - mitführt oder ausbringt, - - - - 2. - - entgegen Artikel 5 Absatz 1 oder 2 Satz 1 oder Artikel 8 - Absatz 1 Satz 1 ein dort genanntes Netz einsetzt, - - - - 3. - - entgegen Artikel 5 Absatz 3 Satz 1 eine dort genannte - Baumkurre mitführt oder einsetzt oder - - - - 4. - - entgegen Artikel 6 Absatz 1 eine dort genannte Baumkurre - einsetzt. - - - - - - - - - § 7 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 494/2002 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 494/2002 der Kommission vom 19. März 2002 mit zusätzlichen - technischen Maßnahmen zur Wiederauffüllung des Seehechtsbestands - in den ICES-Gebieten III, IV, V, VI und VII sowie VIII a, b, d, - e (ABl. L 77 vom 20.3.2002, S. 8), die durch die - Durchführungsverordnung (EU) 2015/1867 (ABl. L 275 vom - 20.10.2015, S. 20) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 3 ein dort genanntes Netz oder ein dort - genanntes Netzteil verwendet, - - - - 2. - - entgegen Artikel 4 Satz 1 eine dort genannte Baumkurre - mitführt oder ausbringt, - - - - 3. - - entgegen Artikel 5 Absatz 2 Satz 1 erster oder zweiter - Gedankenstrich oder Artikel 6 Absatz 1 oder 2 ein dort - genanntes Netz oder eine dort genannte Baumkurre - einsetzt oder zu Wasser lässt, - - - - 4. - - entgegen Artikel 5 Absatz 2 Satz 2 erster Gedankenstrich - oder Satz 3 erster Gedankenstrich Fischfang betreibt - oder - - - - 5. - - entgegen Artikel 5 Absatz 2 Satz 2 zweiter - Gedankenstrich oder Satz 3 zweiter Gedankenstrich ein - dort genanntes Fanggerät zu Wasser lässt oder ausbringt. - - - - - - - - - § 8 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 1185/2003 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 1185/2003 des Rates vom 26. Juni 2003 über das Abtrennen von - Haifischflossen an Bord von Schiffen (ABl. L 167 vom 4.7.2003, - S. 1), die durch die Verordnung (EU) Nr. 605/2013 (ABl. L 181 - vom 29.6.2013, S. 1) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 3 Absatz 1 eine Haifischflosse - abtrennt, mitführt, umlädt oder anlandet oder - - - - 2. - - entgegen Artikel 3 Absatz 2 eine Haifischflosse kauft - oder zum Verkauf anbietet. - - - - - - - - - § 9 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 1984/2003 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 1984/2003 des Rates vom 8. April 2003 über eine Regelung zur - statistischen Erfassung von Schwertfisch und Großaugenthun in - der Gemeinschaft (ABl. L 295 vom 13.11.2003, S. 1), die zuletzt - durch die Verordnung (EU) 2022/2343 (ABl. L 311 vom 2.12.2022, - S. 1) geändert worden ist, verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - entgegen Artikel 4 Absatz 5 Fisch einer dort genannten - Art einführt, - - - - 2. - - entgegen Artikel 5 Absatz 5 Fisch einer dort genannten - Art ausführt oder - - - - 3. - - entgegen Artikel 6 Absatz 6 Fisch einer dort genannten - Art wieder ausführt oder einführt. - - - - - - - - - § 10 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 600/2004 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 600/2004 des Rates vom 22. März 2004 mit technischen - Maßnahmen für die Fischerei im Bereich des Übereinkommens über - die Erhaltung der lebenden Meeresschätze der Antarktis (ABl. L - 97 vom 1.4.2004, S. 1) verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - als Kapitän entgegen Artikel 3 Absatz 1, 2, 3 Satz 1, - Absatz 4 oder 6 eine Fischerei ausübt, - - - - 2. - - als Kapitän entgegen Artikel 4 Absatz 1 ein dort - genanntes Netz oder eine Snurrewade einsetzt, - - - - 3. - - entgegen Artikel 4 Absatz 2 eine Vorrichtung verwendet, - - - - 4. - - als Kapitän entgegen Artikel 6 Absatz 1 Satz 1 zweiter - Halbsatz einen Krebs nicht unverzüglich freilässt, - - - - 5. - - entgegen Artikel 7 Absatz 1 Unterabsatz 1 oder 2 einen - Verpackungsgurt verwendet, - - - - 6. - - als Kapitän entgegen Artikel 7 Absatz 3 erster Halbsatz - Plastikrückstände nicht an Bord aufbewahrt, - - - - 7. - - als Kapitän entgegen Artikel 8 Absatz 1 Satz 3 einen - Köder verwendet, - - - - 8. - - entgegen Artikel 8 Absatz 2 Satz 1 eine Langleine - ausbringt, - - - - 9. - - als Kapitän entgegen Artikel 8 Absatz 3 Satz 1 oder - Artikel 9 Absatz 3 Fischabfälle über Bord wirft, - - - - 10. - - entgegen Artikel 9 Absatz 1 ein Netzsteuerkabel - verwendet, - - - - 11. - - als Kapitän entgegen Artikel 10 Absatz 1 oder 2 ein - Fischereifahrzeug nicht, nicht richtig oder nicht - unverzüglich nach Erreichen des Beifangvolumens an einen - anderen Fangplatz begibt, - - - - 12. - - als Kapitän entgegen Artikel 11 Absatz 3 Satz 2 erster - Halbsatz den Fischfang nicht einstellt, - - - - 13. - - entgegen Artikel 12 Absatz 1 Fischerei ausübt, - - - - 14. - - als Kapitän entgegen Artikel 12 Absatz 2 Satz 1 ein - Fischereifahrzeug nicht, nicht richtig oder nicht - unverzüglich nach Erreichen der dort genannten Fangmenge - an einen dort genannten Fangplatz begibt, - - - - 15. - - als Kapitän entgegen Artikel 12 Absatz 3 die - Fangtätigkeit nicht, nicht richtig, nicht vollständig - oder nicht rechtzeitig einstellt, - - - - 16. - - als Kapitän entgegen Artikel 12 Absatz 4 Hols zu - Forschungszwecken nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise oder - nicht rechtzeitig ausführt oder - - - - 17. - - entgegen Artikel 14 Absatz 1, 2 oder 3 eine dort - genannte Person nicht an Bord nimmt. - - - - - - - - - § 11 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 601/2004 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 601/2004 des Rates vom 22. März - 2004 zur Festlegung von Kontrollmaßnahmen für die - Fischerei im Regelungsbereich des Übereinkommens über - die Erhaltung der lebenden Meeresschätze der Antarktis - und zur Aufhebung der Verordnungen (EWG) Nr. 3943/90, - (EG) Nr. 66/98 und (EG) Nr. 1721/1999 (ABl. L 97 vom - 1.4.2004, S. 16), die zuletzt durch die Verordnung (EG) - Nr. 1005/2008 (ABl. L 286 vom 29.10.2008, S. 1) geändert - worden ist, verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - als Kapitän entgegen Artikel 3 Absatz 1 fischt - oder einen Fang an Bord behält, umlädt oder - anlandet, - - - - 2. - - entgegen Artikel 6 Absatz 1 oder Artikel 7 - Absatz 1 eine Fischerei oder eine - Versuchsfischerei ausübt, - - - - 3. - - als Kapitän entgegen Artikel 7a Buchstabe a - einen dort genannten Stoff ins Meer einbringt, - - - - 4. - - entgegen Artikel 7a Buchstabe b lebendes - Geflügel oder einen lebenden Vogel verbringt - oder dort genanntes Geflügel nicht, nicht - richtig oder nicht vollständig entfernt, - - - - 5. - - entgegen Artikel 7a Buchstabe c Dissostichus - spp. fischt, - - - - 6. - - als Kapitän entgegen Artikel 7b Absatz 1 - Buchstabe a Satz 1 ein dort genanntes Exemplar - nicht markiert oder nicht wieder freilässt oder - - - - 7. - - als Kapitän entgegen Artikel 7b Absatz 1 - Buchstabe d einen Fisch freilässt.(2) - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer - 11 Buchstabe b des Seefischereigesetzes handelt, - wer gegen die Verordnung (EG) Nr. 601/2004 - verstößt, indem er vorsätzlich oder fahrlässig - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 601/2004 verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - als Kapitän entgegen Artikel 4 Absatz 1 eine - Fangerlaubnis und eine beglaubigte Kopie nicht - mitführt oder nicht, nicht richtig oder nicht - rechtzeitig vorlegt, - - - - 2. - - als Kapitän entgegen Artikel 9 Absatz 1 eine - Angabe nicht, nicht richtig, nicht vollständig - oder nicht rechtzeitig macht, - - - - 3. - - als Kapitän entgegen Artikel 13 Absatz 1 erster - Halbsatz, Artikel 14 Absatz 1, Artikel 17 Absatz - 1, Artikel 18 Absatz 1 oder Artikel 19 Absatz 1 - Satz 1 die dort genannten Daten oder eine dort - genannte Angabe nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise - oder nicht rechtzeitig übermittelt, - - - - 4. - - als Kapitän entgegen Artikel 24 Absatz 2 Satz 1 - einer dort genannten Person das Übersetzen nicht - oder nicht richtig gestattet oder - - - - 5. - - als Kapitän entgegen Artikel 27 Absatz 2 Satz 1 - eine Anmeldung nicht oder nicht rechtzeitig - macht oder eine Erklärung nicht, nicht richtig, - nicht vollständig oder nicht rechtzeitig abgibt. - - - - - - - - - - - § 12 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 734/2008 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 734/2008 des Rates vom 15. Juli - 2008 zum Schutz empfindlicher Tiefseeökosysteme vor den - schädlichen Auswirkungen von Grundfanggeräten (ABl. L - 201 vom 30.7.2008, S. 8) verstößt, indem er vorsätzlich - oder fahrlässig - - 1. - - ohne Fangerlaubnis nach Artikel 3 Absatz 1 eine - Fischereitätigkeit ausführt, - - - - 2. - - als Kapitän entgegen Artikel 7 Absatz 1 Satz 1 - eine Fischereitätigkeit nicht, nicht richtig, - nicht vollständig oder nicht rechtzeitig - einstellt, - - - - 3. - - entgegen Artikel 7 Absatz 1 Satz 2 eine - Fischereitätigkeit wieder aufnimmt oder - - - - 4. - - als Kapitän entgegen Artikel 9 Absatz 2 den - Hafen wieder verlässt. - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer - vorsätzlich oder fahrlässig als Kapitän entgegen Artikel - 5 Absatz 2 Satz 1, Artikel 7 Absatz 3 oder Artikel 9 - Absatz 1 der Verordnung (EG) Nr. 734/2008 eine - Mitteilung nicht, nicht richtig, nicht vollständig oder - nicht rechtzeitig macht. - - - - - - - - - § 13 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 1005/2008 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 1005/2008 des Rates vom 29. - September 2008 über ein Gemeinschaftssystem zur - Verhinderung, Bekämpfung und Unterbindung der illegalen, - nicht gemeldeten und unregulierten Fischerei, zur - Änderung der Verordnungen (EWG) Nr. 2847/93 - , (EG) Nr. - 1936/2001 - und (EG) Nr. 601/2004 und zur Aufhebung der - Verordnungen (EG) Nr. 1093/94 - und (EG) Nr. 1447/1999 - (ABl. L 286 vom 29.10.2008, S. 1; L 22 vom 26.1.2011, S. - 8), die zuletzt durch die Verordnung (EU) 2023/2842 - (ABl. L, 2023/2842, 20.12.2023) geändert worden ist, - verstößt, indem er vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 4 Absatz 3 in - Gemeinschaftsgewässern umlädt, - - - - 2. - - als Kapitän entgegen Artikel 4 Absatz 4 einen - Fang umlädt, - - - - 3. - - entgegen Artikel 12 Absatz 1 oder 2 ein - Fischereierzeugnis einführt, - - - - 4. - - entgegen Artikel 37 Nummer 3 ein dort genanntes - Fischereifahrzeug chartert, - - - - 5. - - als Kapitän entgegen Artikel 37 Nummer 4 eine - Fischverarbeitungstätigkeit übernimmt oder sich - an einer Umladung oder einem Fangeinsatz - beteiligt, - - - - 6. - - entgegen Artikel 37 Nummer 5 Satz 2 in einen - Hafen einläuft, - - - - 7. - - entgegen Artikel 38 Nummer 2 ein dort genanntes - Fischereierfahrzeug erwirbt, - - - - 8. - - entgegen Artikel 38 Nummer 3 ein dort genanntes - Fischereifahrzeug umflaggt, - - - - 9. - - entgegen Artikel 38 Nummer 5 ein dort genanntes - Fischereifahrzeug ausführt, - - - - 10. - - entgegen Artikel 38 Nummer 10 ein - Fischereifahrzeug betreibt, besitzt oder managt, - - - - 11. - - entgegen Artikel 38 Nummer 11 anlandet oder - umlädt oder - - - - 12. - - entgegen Artikel 40 Absatz 2 ein - Fischereifahrzeug verkauft oder exportiert. - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 1005/2008 verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 14 Absatz 1 Unterabsatz 1 Satz - 1 Buchstabe a oder b eine dort genannte - Unterlage nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise - oder nicht rechtzeitig vorlegt, - - - - 2. - - entgegen Artikel 14 Absatz 2 Satz 1 eine dort - genannte Erklärung nicht, nicht richtig, nicht - vollständig oder nicht rechtzeitig vorlegt oder - - - - 3. - - entgegen Artikel 16 Absatz 1 Satz 1 eine - validierte Fangbescheinigung nicht, nicht - richtig oder nicht rechtzeitig vorlegt. - - - - - - - - - - - - - - - 2. - - - In § 20 Absatz 1 Satz 2 wird die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die Wörter - § 9 Absatz 1 Satz 2 - ersetzt. - - - - - + + + + § 6 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 2056/2001 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 2056/2001 der Kommission vom 19. Oktober 2001 mit + zusätzlichen technischen Maßnahmen zur Wiederauffüllung der + Kabeljaubestände in der Nordsee und westlich von Schottland + (ABl. L 277 vom 20.10.2001, S. 13), die durch die + Durchführungsverordnung (EU) 2015/1897 (ABl. L 277 vom + 22.10.2015, S. 11) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 4 Nummer 5 ein dort genanntes Netz + mitführt oder ausbringt, + + + + 2. + + entgegen Artikel 5 Absatz 1 oder 2 Satz 1 oder Artikel 8 + Absatz 1 Satz 1 ein dort genanntes Netz einsetzt, + + + + 3. + + entgegen Artikel 5 Absatz 3 Satz 1 eine dort genannte + Baumkurre mitführt oder einsetzt oder + + + + 4. + + entgegen Artikel 6 Absatz 1 eine dort genannte Baumkurre + einsetzt. + + + + + + + + + § 7 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 494/2002 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 494/2002 der Kommission vom 19. März 2002 mit zusätzlichen + technischen Maßnahmen zur Wiederauffüllung des Seehechtsbestands + in den ICES-Gebieten III, IV, V, VI und VII sowie VIII a, b, d, + e (ABl. L 77 vom 20.3.2002, S. 8), die durch die + Durchführungsverordnung (EU) 2015/1867 (ABl. L 275 vom + 20.10.2015, S. 20) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 3 ein dort genanntes Netz oder ein dort + genanntes Netzteil verwendet, + + + + 2. + + entgegen Artikel 4 Satz 1 eine dort genannte Baumkurre + mitführt oder ausbringt, + + + + 3. + + entgegen Artikel 5 Absatz 2 Satz 1 erster oder zweiter + Gedankenstrich oder Artikel 6 Absatz 1 oder 2 ein dort + genanntes Netz oder eine dort genannte Baumkurre + einsetzt oder zu Wasser lässt, + + + + 4. + + entgegen Artikel 5 Absatz 2 Satz 2 erster Gedankenstrich + oder Satz 3 erster Gedankenstrich Fischfang betreibt + oder + + + + 5. + + entgegen Artikel 5 Absatz 2 Satz 2 zweiter + Gedankenstrich oder Satz 3 zweiter Gedankenstrich ein + dort genanntes Fanggerät zu Wasser lässt oder ausbringt. + + + + + + + + + § 8 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 1185/2003 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 1185/2003 des Rates vom 26. Juni 2003 über das Abtrennen von + Haifischflossen an Bord von Schiffen (ABl. L 167 vom 4.7.2003, + S. 1), die durch die Verordnung (EU) Nr. 605/2013 (ABl. L 181 + vom 29.6.2013, S. 1) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 3 Absatz 1 eine Haifischflosse + abtrennt, mitführt, umlädt oder anlandet oder + + + + 2. + + entgegen Artikel 3 Absatz 2 eine Haifischflosse kauft + oder zum Verkauf anbietet. + + + + + + + + + § 9 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 1984/2003 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 1984/2003 des Rates vom 8. April 2003 über eine Regelung zur + statistischen Erfassung von Schwertfisch und Großaugenthun in + der Gemeinschaft (ABl. L 295 vom 13.11.2003, S. 1), die zuletzt + durch die Verordnung (EU) 2022/2343 (ABl. L 311 vom 2.12.2022, + S. 1) geändert worden ist, verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + entgegen Artikel 4 Absatz 5 Fisch einer dort genannten + Art einführt, + + + + 2. + + entgegen Artikel 5 Absatz 5 Fisch einer dort genannten + Art ausführt oder + + + + 3. + + entgegen Artikel 6 Absatz 6 Fisch einer dort genannten + Art wieder ausführt oder einführt. + + + + + + + + + § 10 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 600/2004 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 600/2004 des Rates vom 22. März 2004 mit technischen + Maßnahmen für die Fischerei im Bereich des Übereinkommens über + die Erhaltung der lebenden Meeresschätze der Antarktis (ABl. L + 97 vom 1.4.2004, S. 1) verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + als Kapitän entgegen Artikel 3 Absatz 1, 2, 3 Satz 1, + Absatz 4 oder 6 eine Fischerei ausübt, + + + + 2. + + als Kapitän entgegen Artikel 4 Absatz 1 ein dort + genanntes Netz oder eine Snurrewade einsetzt, + + + + 3. + + entgegen Artikel 4 Absatz 2 eine Vorrichtung verwendet, + + + + 4. + + als Kapitän entgegen Artikel 6 Absatz 1 Satz 1 zweiter + Halbsatz einen Krebs nicht unverzüglich freilässt, + + + + 5. + + entgegen Artikel 7 Absatz 1 Unterabsatz 1 oder 2 einen + Verpackungsgurt verwendet, + + + + 6. + + als Kapitän entgegen Artikel 7 Absatz 3 erster Halbsatz + Plastikrückstände nicht an Bord aufbewahrt, + + + + 7. + + als Kapitän entgegen Artikel 8 Absatz 1 Satz 3 einen + Köder verwendet, + + + + 8. + + entgegen Artikel 8 Absatz 2 Satz 1 eine Langleine + ausbringt, + + + + 9. + + als Kapitän entgegen Artikel 8 Absatz 3 Satz 1 oder + Artikel 9 Absatz 3 Fischabfälle über Bord wirft, + + + + 10. + + entgegen Artikel 9 Absatz 1 ein Netzsteuerkabel + verwendet, + + + + 11. + + als Kapitän entgegen Artikel 10 Absatz 1 oder 2 ein + Fischereifahrzeug nicht, nicht richtig oder nicht + unverzüglich nach Erreichen des Beifangvolumens an einen + anderen Fangplatz begibt, + + + + 12. + + als Kapitän entgegen Artikel 11 Absatz 3 Satz 2 erster + Halbsatz den Fischfang nicht einstellt, + + + + 13. + + entgegen Artikel 12 Absatz 1 Fischerei ausübt, + + + + 14. + + als Kapitän entgegen Artikel 12 Absatz 2 Satz 1 ein + Fischereifahrzeug nicht, nicht richtig oder nicht + unverzüglich nach Erreichen der dort genannten Fangmenge + an einen dort genannten Fangplatz begibt, + + + + 15. + + als Kapitän entgegen Artikel 12 Absatz 3 die + Fangtätigkeit nicht, nicht richtig, nicht vollständig + oder nicht rechtzeitig einstellt, + + + + 16. + + als Kapitän entgegen Artikel 12 Absatz 4 Hols zu + Forschungszwecken nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise oder + nicht rechtzeitig ausführt oder + + + + 17. + + entgegen Artikel 14 Absatz 1, 2 oder 3 eine dort + genannte Person nicht an Bord nimmt. + + + + + + + + + § 11 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 601/2004 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 601/2004 des Rates vom 22. März + 2004 zur Festlegung von Kontrollmaßnahmen für die + Fischerei im Regelungsbereich des Übereinkommens über + die Erhaltung der lebenden Meeresschätze der Antarktis + und zur Aufhebung der Verordnungen (EWG) Nr. 3943/90, + (EG) Nr. 66/98 und (EG) Nr. 1721/1999 (ABl. L 97 vom + 1.4.2004, S. 16), die zuletzt durch die Verordnung (EG) + Nr. 1005/2008 (ABl. L 286 vom 29.10.2008, S. 1) geändert + worden ist, verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + als Kapitän entgegen Artikel 3 Absatz 1 fischt + oder einen Fang an Bord behält, umlädt oder + anlandet, + + + + 2. + + entgegen Artikel 6 Absatz 1 oder Artikel 7 + Absatz 1 eine Fischerei oder eine + Versuchsfischerei ausübt, + + + + 3. + + als Kapitän entgegen Artikel 7a Buchstabe a + einen dort genannten Stoff ins Meer einbringt, + + + + 4. + + entgegen Artikel 7a Buchstabe b lebendes + Geflügel oder einen lebenden Vogel verbringt + oder dort genanntes Geflügel nicht, nicht + richtig oder nicht vollständig entfernt, + + + + 5. + + entgegen Artikel 7a Buchstabe c Dissostichus + spp. fischt, + + + + 6. + + als Kapitän entgegen Artikel 7b Absatz 1 + Buchstabe a Satz 1 ein dort genanntes Exemplar + nicht markiert oder nicht wieder freilässt oder + + + + 7. + + als Kapitän entgegen Artikel 7b Absatz 1 + Buchstabe d einen Fisch freilässt.(2) + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer + 11 Buchstabe b des Seefischereigesetzes handelt, + wer gegen die Verordnung (EG) Nr. 601/2004 + verstößt, indem er vorsätzlich oder fahrlässig + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 601/2004 verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + als Kapitän entgegen Artikel 4 Absatz 1 eine + Fangerlaubnis und eine beglaubigte Kopie nicht + mitführt oder nicht, nicht richtig oder nicht + rechtzeitig vorlegt, + + + + 2. + + als Kapitän entgegen Artikel 9 Absatz 1 eine + Angabe nicht, nicht richtig, nicht vollständig + oder nicht rechtzeitig macht, + + + + 3. + + als Kapitän entgegen Artikel 13 Absatz 1 erster + Halbsatz, Artikel 14 Absatz 1, Artikel 17 Absatz + 1, Artikel 18 Absatz 1 oder Artikel 19 Absatz 1 + Satz 1 die dort genannten Daten oder eine dort + genannte Angabe nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise + oder nicht rechtzeitig übermittelt, + + + + 4. + + als Kapitän entgegen Artikel 24 Absatz 2 Satz 1 + einer dort genannten Person das Übersetzen nicht + oder nicht richtig gestattet oder + + + + 5. + + als Kapitän entgegen Artikel 27 Absatz 2 Satz 1 + eine Anmeldung nicht oder nicht rechtzeitig + macht oder eine Erklärung nicht, nicht richtig, + nicht vollständig oder nicht rechtzeitig abgibt. + + + + + + + + + + + § 12 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 734/2008 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 734/2008 des Rates vom 15. Juli + 2008 zum Schutz empfindlicher Tiefseeökosysteme vor den + schädlichen Auswirkungen von Grundfanggeräten (ABl. L + 201 vom 30.7.2008, S. 8) verstößt, indem er vorsätzlich + oder fahrlässig + + 1. + + ohne Fangerlaubnis nach Artikel 3 Absatz 1 eine + Fischereitätigkeit ausführt, + + + + 2. + + als Kapitän entgegen Artikel 7 Absatz 1 Satz 1 + eine Fischereitätigkeit nicht, nicht richtig, + nicht vollständig oder nicht rechtzeitig + einstellt, + + + + 3. + + entgegen Artikel 7 Absatz 1 Satz 2 eine + Fischereitätigkeit wieder aufnimmt oder + + + + 4. + + als Kapitän entgegen Artikel 9 Absatz 2 den + Hafen wieder verlässt. + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer + vorsätzlich oder fahrlässig als Kapitän entgegen Artikel + 5 Absatz 2 Satz 1, Artikel 7 Absatz 3 oder Artikel 9 + Absatz 1 der Verordnung (EG) Nr. 734/2008 eine + Mitteilung nicht, nicht richtig, nicht vollständig oder + nicht rechtzeitig macht. + + + + + + + + + § 13 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 1005/2008 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 1005/2008 des Rates vom 29. + September 2008 über ein Gemeinschaftssystem zur + Verhinderung, Bekämpfung und Unterbindung der illegalen, + nicht gemeldeten und unregulierten Fischerei, zur + Änderung der Verordnungen (EWG) Nr. 2847/93 + , (EG) Nr. + 1936/2001 + und (EG) Nr. 601/2004 und zur Aufhebung der + Verordnungen (EG) Nr. 1093/94 + und (EG) Nr. 1447/1999 + (ABl. L 286 vom 29.10.2008, S. 1; L 22 vom 26.1.2011, S. + 8), die zuletzt durch die Verordnung (EU) 2023/2842 + (ABl. L, 2023/2842, 20.12.2023) geändert worden ist, + verstößt, indem er vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 4 Absatz 3 in + Gemeinschaftsgewässern umlädt, + + + + 2. + + als Kapitän entgegen Artikel 4 Absatz 4 einen + Fang umlädt, + + + + 3. + + entgegen Artikel 12 Absatz 1 oder 2 ein + Fischereierzeugnis einführt, + + + + 4. + + entgegen Artikel 37 Nummer 3 ein dort genanntes + Fischereifahrzeug chartert, + + + + 5. + + als Kapitän entgegen Artikel 37 Nummer 4 eine + Fischverarbeitungstätigkeit übernimmt oder sich + an einer Umladung oder einem Fangeinsatz + beteiligt, + + + + 6. + + entgegen Artikel 37 Nummer 5 Satz 2 in einen + Hafen einläuft, + + + + 7. + + entgegen Artikel 38 Nummer 2 ein dort genanntes + Fischereierfahrzeug erwirbt, + + + + 8. + + entgegen Artikel 38 Nummer 3 ein dort genanntes + Fischereifahrzeug umflaggt, + + + + 9. + + entgegen Artikel 38 Nummer 5 ein dort genanntes + Fischereifahrzeug ausführt, + + + + 10. + + entgegen Artikel 38 Nummer 10 ein + Fischereifahrzeug betreibt, besitzt oder managt, + + + + 11. + + entgegen Artikel 38 Nummer 11 anlandet oder + umlädt oder + + + + 12. + + entgegen Artikel 40 Absatz 2 ein + Fischereifahrzeug verkauft oder exportiert. + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 1005/2008 verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 14 Absatz 1 Unterabsatz 1 Satz + 1 Buchstabe a oder b eine dort genannte + Unterlage nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise + oder nicht rechtzeitig vorlegt, + + + + 2. + + entgegen Artikel 14 Absatz 2 Satz 1 eine dort + genannte Erklärung nicht, nicht richtig, nicht + vollständig oder nicht rechtzeitig vorlegt oder + + + + 3. + + entgegen Artikel 16 Absatz 1 Satz 1 eine + validierte Fangbescheinigung nicht, nicht + richtig oder nicht rechtzeitig vorlegt. + + + + + + + - - - Artikel 1 - - - - - Das Strukturänderungsgesetz vom 1. Januar 1002 (BGBl. 1002 I Nr. 1) wird wie folgt geändert: - - - - 8. - - - - Das - 3. Buch - wird ersetzt durch: - - - - 3. Buch - - Beispiele Teil I - - - § 6 - - Beispielartikel (neu) - - - - - Im Rahmen des Gesetzes werden klare Regelungen für die Inanspruchnahme von Rechtsmitteln festgelegt. - - - - - - - - - - - - 9. - - - - - Das Beispielkapitel - wird ersetzt durch: - - - - - Beispielkapitel (neu) - - - § 7 - - Beispielartikel - - - - - Das Gesetz legt großen Wert auf die Einbeziehung der Öffentlichkeit und relevanter Interessengruppen durch umfassende Beteiligungsverfahren. Diese Verfahren sollen sicherstellen, dass die Meinungen und Bedürfnisse der Bürger sowie die Expertise von Fachleuten und Interessensvertretern in die Entscheidungsprozesse einfließen. - - - - - - - - - - - - - - - Inkrafttreten - - - - Dieses Gesetz tritt am Tag nach der Verkündung in Kraft. + + § 6 + + Beispielartikel (neu) + + + + + Im Rahmen des Gesetzes werden klare Regelungen für die Inanspruchnahme von Rechtsmitteln festgelegt. diff --git a/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesToFind.xml b/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesToFind.xml index eb99bc5f0..767b0639f 100644 --- a/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesToFind.xml +++ b/backend/src/test/resources/de/bund/digitalservice/ris/norms/domain/entity/NormWithReferencesToFind.xml @@ -288,47 +288,8 @@ eId="hauptteil-1_art-1_überschrift-1">Artikel 1 - - - - - - Die - Seefischerei-Bußgeldverordnung vom 16. Juni 1998 (BGBl. I S. 1355), die zuletzt durch - Artikel 1 der Verordnung vom 7. Februar 2018 (BGBl. I S. 196) geändert worden ist, wird - wie folgt geändert: - - - - - 1. - - - - - Die - §§ 5 bis 41 - werden durch die folgenden §§ 5 bis 39 ersetzt: - - - + - - - - § 6 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 2056/2001 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 2056/2001 der Kommission vom 19. Oktober 2001 mit - zusätzlichen technischen Maßnahmen zur Wiederauffüllung der - Kabeljaubestände in der Nordsee und westlich von Schottland - (ABl. L 277 vom 20.10.2001, S. 13), die durch die - Durchführungsverordnung (EU) 2015/1897 (ABl. L 277 vom - 22.10.2015, S. 11) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 4 Nummer 5 ein dort genanntes Netz - mitführt oder ausbringt, - - - - 2. - - entgegen Artikel 5 Absatz 1 oder 2 Satz 1 oder Artikel 8 - Absatz 1 Satz 1 ein dort genanntes Netz einsetzt, - - - - 3. - - entgegen Artikel 5 Absatz 3 Satz 1 eine dort genannte - Baumkurre mitführt oder einsetzt oder - - - - 4. - - entgegen Artikel 6 Absatz 1 eine dort genannte Baumkurre - einsetzt. - - - - - - - - - § 7 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 494/2002 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 494/2002 der Kommission vom 19. März 2002 mit zusätzlichen - technischen Maßnahmen zur Wiederauffüllung des Seehechtsbestands - in den ICES-Gebieten III, IV, V, VI und VII sowie VIII a, b, d, - e (ABl. L 77 vom 20.3.2002, S. 8), die durch die - Durchführungsverordnung (EU) 2015/1867 (ABl. L 275 vom - 20.10.2015, S. 20) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 3 ein dort genanntes Netz oder ein dort - genanntes Netzteil verwendet, - - - - 2. - - entgegen Artikel 4 Satz 1 eine dort genannte Baumkurre - mitführt oder ausbringt, - - - - 3. - - entgegen Artikel 5 Absatz 2 Satz 1 erster oder zweiter - Gedankenstrich oder Artikel 6 Absatz 1 oder 2 ein dort - genanntes Netz oder eine dort genannte Baumkurre - einsetzt oder zu Wasser lässt, - - - - 4. - - entgegen Artikel 5 Absatz 2 Satz 2 erster Gedankenstrich - oder Satz 3 erster Gedankenstrich Fischfang betreibt - oder - - - - 5. - - entgegen Artikel 5 Absatz 2 Satz 2 zweiter - Gedankenstrich oder Satz 3 zweiter Gedankenstrich ein - dort genanntes Fanggerät zu Wasser lässt oder ausbringt. - - - - - - - - - § 8 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 1185/2003 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 1185/2003 des Rates vom 26. Juni 2003 über das Abtrennen von - Haifischflossen an Bord von Schiffen (ABl. L 167 vom 4.7.2003, - S. 1), die durch die Verordnung (EU) Nr. 605/2013 (ABl. L 181 - vom 29.6.2013, S. 1) geändert worden ist, verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 3 Absatz 1 eine Haifischflosse - abtrennt, mitführt, umlädt oder anlandet oder - - - - 2. - - entgegen Artikel 3 Absatz 2 eine Haifischflosse kauft - oder zum Verkauf anbietet. - - - - - - - - - § 9 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. - 1984/2003 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 1984/2003 des Rates vom 8. April 2003 über eine Regelung zur - statistischen Erfassung von Schwertfisch und Großaugenthun in - der Gemeinschaft (ABl. L 295 vom 13.11.2003, S. 1), die zuletzt - durch die Verordnung (EU) 2022/2343 (ABl. L 311 vom 2.12.2022, - S. 1) geändert worden ist, verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - entgegen Artikel 4 Absatz 5 Fisch einer dort genannten - Art einführt, - - - - 2. - - entgegen Artikel 5 Absatz 5 Fisch einer dort genannten - Art ausführt oder - - - - 3. - - entgegen Artikel 6 Absatz 6 Fisch einer dort genannten - Art wieder ausführt oder einführt. - - - - - - - - - § 10 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 600/2004 - - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a - des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) - Nr. 600/2004 des Rates vom 22. März 2004 mit technischen - Maßnahmen für die Fischerei im Bereich des Übereinkommens über - die Erhaltung der lebenden Meeresschätze der Antarktis (ABl. L - 97 vom 1.4.2004, S. 1) verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - als Kapitän entgegen Artikel 3 Absatz 1, 2, 3 Satz 1, - Absatz 4 oder 6 eine Fischerei ausübt, - - - - 2. - - als Kapitän entgegen Artikel 4 Absatz 1 ein dort - genanntes Netz oder eine Snurrewade einsetzt, - - - - 3. - - entgegen Artikel 4 Absatz 2 eine Vorrichtung verwendet, - - - - 4. - - als Kapitän entgegen Artikel 6 Absatz 1 Satz 1 zweiter - Halbsatz einen Krebs nicht unverzüglich freilässt, - - - - 5. - - entgegen Artikel 7 Absatz 1 Unterabsatz 1 oder 2 einen - Verpackungsgurt verwendet, - - - - 6. - - als Kapitän entgegen Artikel 7 Absatz 3 erster Halbsatz - Plastikrückstände nicht an Bord aufbewahrt, - - - - 7. - - als Kapitän entgegen Artikel 8 Absatz 1 Satz 3 einen - Köder verwendet, - - - - 8. - - entgegen Artikel 8 Absatz 2 Satz 1 eine Langleine - ausbringt, - - - - 9. - - als Kapitän entgegen Artikel 8 Absatz 3 Satz 1 oder - Artikel 9 Absatz 3 Fischabfälle über Bord wirft, - - - - 10. - - entgegen Artikel 9 Absatz 1 ein Netzsteuerkabel - verwendet, - - - - 11. - - als Kapitän entgegen Artikel 10 Absatz 1 oder 2 ein - Fischereifahrzeug nicht, nicht richtig oder nicht - unverzüglich nach Erreichen des Beifangvolumens an einen - anderen Fangplatz begibt, - - - - 12. - - als Kapitän entgegen Artikel 11 Absatz 3 Satz 2 erster - Halbsatz den Fischfang nicht einstellt, - - - - 13. - - entgegen Artikel 12 Absatz 1 Fischerei ausübt, - - - - 14. - - als Kapitän entgegen Artikel 12 Absatz 2 Satz 1 ein - Fischereifahrzeug nicht, nicht richtig oder nicht - unverzüglich nach Erreichen der dort genannten Fangmenge - an einen dort genannten Fangplatz begibt, - - - - 15. - - als Kapitän entgegen Artikel 12 Absatz 3 die - Fangtätigkeit nicht, nicht richtig, nicht vollständig - oder nicht rechtzeitig einstellt, - - - - 16. - - als Kapitän entgegen Artikel 12 Absatz 4 Hols zu - Forschungszwecken nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise oder - nicht rechtzeitig ausführt oder - - - - 17. - - entgegen Artikel 14 Absatz 1, 2 oder 3 eine dort - genannte Person nicht an Bord nimmt. - - - - - - - - - § 11 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 601/2004 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 601/2004 des Rates vom 22. März - 2004 zur Festlegung von Kontrollmaßnahmen für die - Fischerei im Regelungsbereich des Übereinkommens über - die Erhaltung der lebenden Meeresschätze der Antarktis - und zur Aufhebung der Verordnungen (EWG) Nr. 3943/90, - (EG) Nr. 66/98 und (EG) Nr. 1721/1999 (ABl. L 97 vom - 1.4.2004, S. 16), die zuletzt durch die Verordnung (EG) - Nr. 1005/2008 (ABl. L 286 vom 29.10.2008, S. 1) geändert - worden ist, verstößt, indem er vorsätzlich oder - fahrlässig - - 1. - - als Kapitän entgegen Artikel 3 Absatz 1 fischt - oder einen Fang an Bord behält, umlädt oder - anlandet, - - - - 2. - - entgegen Artikel 6 Absatz 1 oder Artikel 7 - Absatz 1 eine Fischerei oder eine - Versuchsfischerei ausübt, - - - - 3. - - als Kapitän entgegen Artikel 7a Buchstabe a - einen dort genannten Stoff ins Meer einbringt, - - - - 4. - - entgegen Artikel 7a Buchstabe b lebendes - Geflügel oder einen lebenden Vogel verbringt - oder dort genanntes Geflügel nicht, nicht - richtig oder nicht vollständig entfernt, - - - - 5. - - entgegen Artikel 7a Buchstabe c Dissostichus - spp. fischt, - - - - 6. - - als Kapitän entgegen Artikel 7b Absatz 1 - Buchstabe a Satz 1 ein dort genanntes Exemplar - nicht markiert oder nicht wieder freilässt oder - - - - 7. - - als Kapitän entgegen Artikel 7b Absatz 1 - Buchstabe d einen Fisch freilässt.(2) - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer - 11 Buchstabe b des Seefischereigesetzes handelt, - wer gegen die Verordnung (EG) Nr. 601/2004 - verstößt, indem er vorsätzlich oder fahrlässig - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 601/2004 verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - als Kapitän entgegen Artikel 4 Absatz 1 eine - Fangerlaubnis und eine beglaubigte Kopie nicht - mitführt oder nicht, nicht richtig oder nicht - rechtzeitig vorlegt, - - - - 2. - - als Kapitän entgegen Artikel 9 Absatz 1 eine - Angabe nicht, nicht richtig, nicht vollständig - oder nicht rechtzeitig macht, - - - - 3. - - als Kapitän entgegen Artikel 13 Absatz 1 erster - Halbsatz, Artikel 14 Absatz 1, Artikel 17 Absatz - 1, Artikel 18 Absatz 1 oder Artikel 19 Absatz 1 - Satz 1 die dort genannten Daten oder eine dort - genannte Angabe nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise - oder nicht rechtzeitig übermittelt, - - - - 4. - - als Kapitän entgegen Artikel 24 Absatz 2 Satz 1 - einer dort genannten Person das Übersetzen nicht - oder nicht richtig gestattet oder - - - - 5. - - als Kapitän entgegen Artikel 27 Absatz 2 Satz 1 - eine Anmeldung nicht oder nicht rechtzeitig - macht oder eine Erklärung nicht, nicht richtig, - nicht vollständig oder nicht rechtzeitig abgibt. - - - - - - - - - - - § 12 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 734/2008 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 734/2008 des Rates vom 15. Juli - 2008 zum Schutz empfindlicher Tiefseeökosysteme vor den - schädlichen Auswirkungen von Grundfanggeräten (ABl. L - 201 vom 30.7.2008, S. 8) verstößt, indem er vorsätzlich - oder fahrlässig - - 1. - - ohne Fangerlaubnis nach Artikel 3 Absatz 1 eine - Fischereitätigkeit ausführt, - - - - 2. - - als Kapitän entgegen Artikel 7 Absatz 1 Satz 1 - eine Fischereitätigkeit nicht, nicht richtig, - nicht vollständig oder nicht rechtzeitig - einstellt, - - - - 3. - - entgegen Artikel 7 Absatz 1 Satz 2 eine - Fischereitätigkeit wieder aufnimmt oder - - - - 4. - - als Kapitän entgegen Artikel 9 Absatz 2 den - Hafen wieder verlässt. - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer - vorsätzlich oder fahrlässig als Kapitän entgegen Artikel - 5 Absatz 2 Satz 1, Artikel 7 Absatz 3 oder Artikel 9 - Absatz 1 der Verordnung (EG) Nr. 734/2008 eine - Mitteilung nicht, nicht richtig, nicht vollständig oder - nicht rechtzeitig macht. - - - - - - - - - § 13 Durchsetzung bestimmter Vorschriften der Verordnung (EG) - Nr. 1005/2008 - - - - (1) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe a des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 1005/2008 des Rates vom 29. - September 2008 über ein Gemeinschaftssystem zur - Verhinderung, Bekämpfung und Unterbindung der illegalen, - nicht gemeldeten und unregulierten Fischerei, zur - Änderung der Verordnungen (EWG) Nr. 2847/93, (EG) Nr. - 1936/2001 und (EG) Nr. 601/2004 und zur Aufhebung der - Verordnungen (EG) Nr. 1093/94 und (EG) Nr. 1447/1999 - (ABl. L 286 vom 29.10.2008, S. 1; L 22 vom 26.1.2011, S. - 8), die zuletzt durch die Verordnung (EU) 2023/2842 - (ABl. L, 2023/2842, 20.12.2023) geändert worden ist, - verstößt, indem er vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 4 Absatz 3 in - Gemeinschaftsgewässern umlädt, - - - - 2. - - als Kapitän entgegen Artikel 4 Absatz 4 einen - Fang umlädt, - - - - 3. - - entgegen Artikel 12 Absatz 1 oder 2 ein - Fischereierzeugnis einführt, - - - - 4. - - entgegen Artikel 37 Nummer 3 ein dort genanntes - Fischereifahrzeug chartert, - - - - 5. - - als Kapitän entgegen Artikel 37 Nummer 4 eine - Fischverarbeitungstätigkeit übernimmt oder sich - an einer Umladung oder einem Fangeinsatz - beteiligt, - - - - 6. - - entgegen Artikel 37 Nummer 5 Satz 2 in einen - Hafen einläuft, - - - - 7. - - entgegen Artikel 38 Nummer 2 ein dort genanntes - Fischereierfahrzeug erwirbt, - - - - 8. - - entgegen Artikel 38 Nummer 3 ein dort genanntes - Fischereifahrzeug umflaggt, - - - - 9. - - entgegen Artikel 38 Nummer 5 ein dort genanntes - Fischereifahrzeug ausführt, - - - - 10. - - entgegen Artikel 38 Nummer 10 ein - Fischereifahrzeug betreibt, besitzt oder managt, - - - - 11. - - entgegen Artikel 38 Nummer 11 anlandet oder - umlädt oder - - - - 12. - - entgegen Artikel 40 Absatz 2 ein - Fischereifahrzeug verkauft oder exportiert. - - - - - - (2) - - Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 - Buchstabe b des Seefischereigesetzes handelt, wer gegen - die Verordnung (EG) Nr. 1005/2008 verstößt, indem er - vorsätzlich oder fahrlässig - - 1. - - entgegen Artikel 14 Absatz 1 Unterabsatz 1 Satz - 1 Buchstabe a oder b eine dort genannte - Unterlage nicht, nicht richtig, nicht - vollständig, nicht in der vorgeschriebenen Weise - oder nicht rechtzeitig vorlegt, - - - - 2. - - entgegen Artikel 14 Absatz 2 Satz 1 eine dort - genannte Erklärung nicht, nicht richtig, nicht - vollständig oder nicht rechtzeitig vorlegt oder - - - - 3. - - entgegen Artikel 16 Absatz 1 Satz 1 eine - validierte Fangbescheinigung nicht, nicht - richtig oder nicht rechtzeitig vorlegt. - - - - - - - - - - - - - - - 2. - - - In § 20 Absatz 1 Satz 2 wird die Angabe § 9 Abs. 1 Satz 2, Abs. 2 durch die Wörter § 9 Absatz 1 Satz 2 ersetzt. - - - - - + + + + § 6 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 2056/2001 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 2056/2001 der Kommission vom 19. Oktober 2001 mit + zusätzlichen technischen Maßnahmen zur Wiederauffüllung der + Kabeljaubestände in der Nordsee und westlich von Schottland + (ABl. L 277 vom 20.10.2001, S. 13), die durch die + Durchführungsverordnung (EU) 2015/1897 (ABl. L 277 vom + 22.10.2015, S. 11) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 4 Nummer 5 ein dort genanntes Netz + mitführt oder ausbringt, + + + + 2. + + entgegen Artikel 5 Absatz 1 oder 2 Satz 1 oder Artikel 8 + Absatz 1 Satz 1 ein dort genanntes Netz einsetzt, + + + + 3. + + entgegen Artikel 5 Absatz 3 Satz 1 eine dort genannte + Baumkurre mitführt oder einsetzt oder + + + + 4. + + entgegen Artikel 6 Absatz 1 eine dort genannte Baumkurre + einsetzt. + + + + + + + + + § 7 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 494/2002 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 494/2002 der Kommission vom 19. März 2002 mit zusätzlichen + technischen Maßnahmen zur Wiederauffüllung des Seehechtsbestands + in den ICES-Gebieten III, IV, V, VI und VII sowie VIII a, b, d, + e (ABl. L 77 vom 20.3.2002, S. 8), die durch die + Durchführungsverordnung (EU) 2015/1867 (ABl. L 275 vom + 20.10.2015, S. 20) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 3 ein dort genanntes Netz oder ein dort + genanntes Netzteil verwendet, + + + + 2. + + entgegen Artikel 4 Satz 1 eine dort genannte Baumkurre + mitführt oder ausbringt, + + + + 3. + + entgegen Artikel 5 Absatz 2 Satz 1 erster oder zweiter + Gedankenstrich oder Artikel 6 Absatz 1 oder 2 ein dort + genanntes Netz oder eine dort genannte Baumkurre + einsetzt oder zu Wasser lässt, + + + + 4. + + entgegen Artikel 5 Absatz 2 Satz 2 erster Gedankenstrich + oder Satz 3 erster Gedankenstrich Fischfang betreibt + oder + + + + 5. + + entgegen Artikel 5 Absatz 2 Satz 2 zweiter + Gedankenstrich oder Satz 3 zweiter Gedankenstrich ein + dort genanntes Fanggerät zu Wasser lässt oder ausbringt. + + + + + + + + + § 8 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 1185/2003 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 1185/2003 des Rates vom 26. Juni 2003 über das Abtrennen von + Haifischflossen an Bord von Schiffen (ABl. L 167 vom 4.7.2003, + S. 1), die durch die Verordnung (EU) Nr. 605/2013 (ABl. L 181 + vom 29.6.2013, S. 1) geändert worden ist, verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 3 Absatz 1 eine Haifischflosse + abtrennt, mitführt, umlädt oder anlandet oder + + + + 2. + + entgegen Artikel 3 Absatz 2 eine Haifischflosse kauft + oder zum Verkauf anbietet. + + + + + + + + + § 9 Durchsetzung bestimmter Vorschriften der Verordnung (EG) Nr. + 1984/2003 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 1984/2003 des Rates vom 8. April 2003 über eine Regelung zur + statistischen Erfassung von Schwertfisch und Großaugenthun in + der Gemeinschaft (ABl. L 295 vom 13.11.2003, S. 1), die zuletzt + durch die Verordnung (EU) 2022/2343 (ABl. L 311 vom 2.12.2022, + S. 1) geändert worden ist, verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + entgegen Artikel 4 Absatz 5 Fisch einer dort genannten + Art einführt, + + + + 2. + + entgegen Artikel 5 Absatz 5 Fisch einer dort genannten + Art ausführt oder + + + + 3. + + entgegen Artikel 6 Absatz 6 Fisch einer dort genannten + Art wieder ausführt oder einführt. + + + + + + + + + § 10 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 600/2004 + + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 Buchstabe a + des Seefischereigesetzes handelt, wer gegen die Verordnung (EG) + Nr. 600/2004 des Rates vom 22. März 2004 mit technischen + Maßnahmen für die Fischerei im Bereich des Übereinkommens über + die Erhaltung der lebenden Meeresschätze der Antarktis (ABl. L + 97 vom 1.4.2004, S. 1) verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + als Kapitän entgegen Artikel 3 Absatz 1, 2, 3 Satz 1, + Absatz 4 oder 6 eine Fischerei ausübt, + + + + 2. + + als Kapitän entgegen Artikel 4 Absatz 1 ein dort + genanntes Netz oder eine Snurrewade einsetzt, + + + + 3. + + entgegen Artikel 4 Absatz 2 eine Vorrichtung verwendet, + + + + 4. + + als Kapitän entgegen Artikel 6 Absatz 1 Satz 1 zweiter + Halbsatz einen Krebs nicht unverzüglich freilässt, + + + + 5. + + entgegen Artikel 7 Absatz 1 Unterabsatz 1 oder 2 einen + Verpackungsgurt verwendet, + + + + 6. + + als Kapitän entgegen Artikel 7 Absatz 3 erster Halbsatz + Plastikrückstände nicht an Bord aufbewahrt, + + + + 7. + + als Kapitän entgegen Artikel 8 Absatz 1 Satz 3 einen + Köder verwendet, + + + + 8. + + entgegen Artikel 8 Absatz 2 Satz 1 eine Langleine + ausbringt, + + + + 9. + + als Kapitän entgegen Artikel 8 Absatz 3 Satz 1 oder + Artikel 9 Absatz 3 Fischabfälle über Bord wirft, + + + + 10. + + entgegen Artikel 9 Absatz 1 ein Netzsteuerkabel + verwendet, + + + + 11. + + als Kapitän entgegen Artikel 10 Absatz 1 oder 2 ein + Fischereifahrzeug nicht, nicht richtig oder nicht + unverzüglich nach Erreichen des Beifangvolumens an einen + anderen Fangplatz begibt, + + + + 12. + + als Kapitän entgegen Artikel 11 Absatz 3 Satz 2 erster + Halbsatz den Fischfang nicht einstellt, + + + + 13. + + entgegen Artikel 12 Absatz 1 Fischerei ausübt, + + + + 14. + + als Kapitän entgegen Artikel 12 Absatz 2 Satz 1 ein + Fischereifahrzeug nicht, nicht richtig oder nicht + unverzüglich nach Erreichen der dort genannten Fangmenge + an einen dort genannten Fangplatz begibt, + + + + 15. + + als Kapitän entgegen Artikel 12 Absatz 3 die + Fangtätigkeit nicht, nicht richtig, nicht vollständig + oder nicht rechtzeitig einstellt, + + + + 16. + + als Kapitän entgegen Artikel 12 Absatz 4 Hols zu + Forschungszwecken nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise oder + nicht rechtzeitig ausführt oder + + + + 17. + + entgegen Artikel 14 Absatz 1, 2 oder 3 eine dort + genannte Person nicht an Bord nimmt. + + + + + + + + + § 11 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 601/2004 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 601/2004 des Rates vom 22. März + 2004 zur Festlegung von Kontrollmaßnahmen für die + Fischerei im Regelungsbereich des Übereinkommens über + die Erhaltung der lebenden Meeresschätze der Antarktis + und zur Aufhebung der Verordnungen (EWG) Nr. 3943/90, + (EG) Nr. 66/98 und (EG) Nr. 1721/1999 (ABl. L 97 vom + 1.4.2004, S. 16), die zuletzt durch die Verordnung (EG) + Nr. 1005/2008 (ABl. L 286 vom 29.10.2008, S. 1) geändert + worden ist, verstößt, indem er vorsätzlich oder + fahrlässig + + 1. + + als Kapitän entgegen Artikel 3 Absatz 1 fischt + oder einen Fang an Bord behält, umlädt oder + anlandet, + + + + 2. + + entgegen Artikel 6 Absatz 1 oder Artikel 7 + Absatz 1 eine Fischerei oder eine + Versuchsfischerei ausübt, + + + + 3. + + als Kapitän entgegen Artikel 7a Buchstabe a + einen dort genannten Stoff ins Meer einbringt, + + + + 4. + + entgegen Artikel 7a Buchstabe b lebendes + Geflügel oder einen lebenden Vogel verbringt + oder dort genanntes Geflügel nicht, nicht + richtig oder nicht vollständig entfernt, + + + + 5. + + entgegen Artikel 7a Buchstabe c Dissostichus + spp. fischt, + + + + 6. + + als Kapitän entgegen Artikel 7b Absatz 1 + Buchstabe a Satz 1 ein dort genanntes Exemplar + nicht markiert oder nicht wieder freilässt oder + + + + 7. + + als Kapitän entgegen Artikel 7b Absatz 1 + Buchstabe d einen Fisch freilässt.(2) + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer + 11 Buchstabe b des Seefischereigesetzes handelt, + wer gegen die Verordnung (EG) Nr. 601/2004 + verstößt, indem er vorsätzlich oder fahrlässig + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 601/2004 verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + als Kapitän entgegen Artikel 4 Absatz 1 eine + Fangerlaubnis und eine beglaubigte Kopie nicht + mitführt oder nicht, nicht richtig oder nicht + rechtzeitig vorlegt, + + + + 2. + + als Kapitän entgegen Artikel 9 Absatz 1 eine + Angabe nicht, nicht richtig, nicht vollständig + oder nicht rechtzeitig macht, + + + + 3. + + als Kapitän entgegen Artikel 13 Absatz 1 erster + Halbsatz, Artikel 14 Absatz 1, Artikel 17 Absatz + 1, Artikel 18 Absatz 1 oder Artikel 19 Absatz 1 + Satz 1 die dort genannten Daten oder eine dort + genannte Angabe nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise + oder nicht rechtzeitig übermittelt, + + + + 4. + + als Kapitän entgegen Artikel 24 Absatz 2 Satz 1 + einer dort genannten Person das Übersetzen nicht + oder nicht richtig gestattet oder + + + + 5. + + als Kapitän entgegen Artikel 27 Absatz 2 Satz 1 + eine Anmeldung nicht oder nicht rechtzeitig + macht oder eine Erklärung nicht, nicht richtig, + nicht vollständig oder nicht rechtzeitig abgibt. + + + + + + + + + + + § 12 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 734/2008 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 734/2008 des Rates vom 15. Juli + 2008 zum Schutz empfindlicher Tiefseeökosysteme vor den + schädlichen Auswirkungen von Grundfanggeräten (ABl. L + 201 vom 30.7.2008, S. 8) verstößt, indem er vorsätzlich + oder fahrlässig + + 1. + + ohne Fangerlaubnis nach Artikel 3 Absatz 1 eine + Fischereitätigkeit ausführt, + + + + 2. + + als Kapitän entgegen Artikel 7 Absatz 1 Satz 1 + eine Fischereitätigkeit nicht, nicht richtig, + nicht vollständig oder nicht rechtzeitig + einstellt, + + + + 3. + + entgegen Artikel 7 Absatz 1 Satz 2 eine + Fischereitätigkeit wieder aufnimmt oder + + + + 4. + + als Kapitän entgegen Artikel 9 Absatz 2 den + Hafen wieder verlässt. + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer + vorsätzlich oder fahrlässig als Kapitän entgegen Artikel + 5 Absatz 2 Satz 1, Artikel 7 Absatz 3 oder Artikel 9 + Absatz 1 der Verordnung (EG) Nr. 734/2008 eine + Mitteilung nicht, nicht richtig, nicht vollständig oder + nicht rechtzeitig macht. + + + + + + + + + § 13 Durchsetzung bestimmter Vorschriften der Verordnung (EG) + Nr. 1005/2008 + + + + (1) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe a des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 1005/2008 des Rates vom 29. + September 2008 über ein Gemeinschaftssystem zur + Verhinderung, Bekämpfung und Unterbindung der illegalen, + nicht gemeldeten und unregulierten Fischerei, zur + Änderung der Verordnungen (EWG) Nr. 2847/93, (EG) Nr. + 1936/2001 und (EG) Nr. 601/2004 und zur Aufhebung der + Verordnungen (EG) Nr. 1093/94 und (EG) Nr. 1447/1999 + (ABl. L 286 vom 29.10.2008, S. 1; L 22 vom 26.1.2011, S. + 8), die zuletzt durch die Verordnung (EU) 2023/2842 + (ABl. L, 2023/2842, 20.12.2023) geändert worden ist, + verstößt, indem er vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 4 Absatz 3 in + Gemeinschaftsgewässern umlädt, + + + + 2. + + als Kapitän entgegen Artikel 4 Absatz 4 einen + Fang umlädt, + + + + 3. + + entgegen Artikel 12 Absatz 1 oder 2 ein + Fischereierzeugnis einführt, + + + + 4. + + entgegen Artikel 37 Nummer 3 ein dort genanntes + Fischereifahrzeug chartert, + + + + 5. + + als Kapitän entgegen Artikel 37 Nummer 4 eine + Fischverarbeitungstätigkeit übernimmt oder sich + an einer Umladung oder einem Fangeinsatz + beteiligt, + + + + 6. + + entgegen Artikel 37 Nummer 5 Satz 2 in einen + Hafen einläuft, + + + + 7. + + entgegen Artikel 38 Nummer 2 ein dort genanntes + Fischereierfahrzeug erwirbt, + + + + 8. + + entgegen Artikel 38 Nummer 3 ein dort genanntes + Fischereifahrzeug umflaggt, + + + + 9. + + entgegen Artikel 38 Nummer 5 ein dort genanntes + Fischereifahrzeug ausführt, + + + + 10. + + entgegen Artikel 38 Nummer 10 ein + Fischereifahrzeug betreibt, besitzt oder managt, + + + + 11. + + entgegen Artikel 38 Nummer 11 anlandet oder + umlädt oder + + + + 12. + + entgegen Artikel 40 Absatz 2 ein + Fischereifahrzeug verkauft oder exportiert. + + + + + + (2) + + Ordnungswidrig im Sinne des § 18 Absatz 2 Nummer 11 + Buchstabe b des Seefischereigesetzes handelt, wer gegen + die Verordnung (EG) Nr. 1005/2008 verstößt, indem er + vorsätzlich oder fahrlässig + + 1. + + entgegen Artikel 14 Absatz 1 Unterabsatz 1 Satz + 1 Buchstabe a oder b eine dort genannte + Unterlage nicht, nicht richtig, nicht + vollständig, nicht in der vorgeschriebenen Weise + oder nicht rechtzeitig vorlegt, + + + + 2. + + entgegen Artikel 14 Absatz 2 Satz 1 eine dort + genannte Erklärung nicht, nicht richtig, nicht + vollständig oder nicht rechtzeitig vorlegt oder + + + + 3. + + entgegen Artikel 16 Absatz 1 Satz 1 eine + validierte Fangbescheinigung nicht, nicht + richtig oder nicht rechtzeitig vorlegt. + + + + + + +