# ProfitabilityJournalistNoAttack (ARX GUI Documentation)

org.deidentifier.arx.criteria

## Class ProfitabilityJournalistNoAttack

- java.lang.Object
- - org.deidentifier.arx.criteria.PrivacyCriterion
  - - org.deidentifier.arx.criteria.ImplicitPrivacyCriterion
    - - org.deidentifier.arx.criteria.ProfitabilityProsecutorNoAttack
      - - org.deidentifier.arx.criteria.ProfitabilityJournalistNoAttack

- All Implemented Interfaces:
    java.io.Serializable

      public class ProfitabilityJournalistNoAttack
      extends ProfitabilityProsecutorNoAttack

  Privacy model for the "no-attack" variant of the game theoretic approach proposed in: A Game Theoretic Framework for Analyzing Re-Identification Risk. Zhiyu Wan, Yevgeniy Vorobeychik, Weiyi Xia, Ellen Wright Clayton, Murat Kantarcioglu, Ranjit Ganta, Raymond Heatherly, Bradley A. Malin PLOS|ONE. 2015.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProfitabilityJournalistNoAttack(DataSubset subset)` Creates a new instance

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PrivacyCriterion` | `clone()` Clone
    `PrivacyCriterion` | `clone(DataSubset subset)` Clone for local recoding
    `DataSubset` | `getDataSubset()` If a privacy model uses a data subset, it must overwrite this method
    `int` | `getMinimalClassSize()` If a privacy model provides a prosecutor risk threshold, it should override this method to enable optimizations
    `int` | `getRequirements()` Returns the criterion's requirements.
    `double` | `getRiskThresholdJournalist()` Return journalist risk threshold, 1 if there is none
    `double` | `getRiskThresholdMarketer()` Return marketer risk threshold, 1 if there is none
    `double` | `getRiskThresholdProsecutor()` Return prosecutor risk threshold, 1 if there is none
    `boolean` | `isAnonymous(org.deidentifier.arx.framework.lattice.Transformation node, org.deidentifier.arx.framework.check.groupify.HashGroupifyEntry entry)` Implement this, to enforce the criterion.
    `boolean` | `isLocalRecodingSupported()` Returns whether the criterion supports local recoding.
    `boolean` | `isMinimalClassSizeAvailable()` If a privacy model provides a prosecutor risk threshold, it should override this method to enable optimizations
    `boolean` | `isSubsetAvailable()` If a privacy model uses a data subset, it must overwrite this method
    `ElementData` | `render()` Renders the privacy model
    `java.lang.String` | `toString()` Returns a string representation.

    - ### Methods inherited from class org.deidentifier.arx.criteria.ProfitabilityProsecutorNoAttack

      `getConfiguration, getK, initialize, toString`

    - ### Methods inherited from class org.deidentifier.arx.criteria.PrivacyCriterion

      `getPopulationModel, getSubset, isMonotonicWithGeneralization, isMonotonicWithSuppression, isSampleBased`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ProfitabilityJournalistNoAttack

          public ProfitabilityJournalistNoAttack(DataSubset subset)

      Creates a new instance
      Parameters:
        `subset` -

  - ### Method Detail

    - #### clone

          public PrivacyCriterion clone()

      Description copied from class: `PrivacyCriterion`
      Clone
      Overrides:
        `clone` in class `ProfitabilityProsecutorNoAttack`

    - #### clone

          public PrivacyCriterion clone(DataSubset subset)

      Description copied from class: `PrivacyCriterion`
      Clone for local recoding
      Overrides:
        `clone` in class `ProfitabilityProsecutorNoAttack`

    - #### getDataSubset

          public DataSubset getDataSubset()

      Description copied from class: `PrivacyCriterion`
      If a privacy model uses a data subset, it must overwrite this method
      Overrides:
        `getDataSubset` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### getMinimalClassSize

          public int getMinimalClassSize()

      Description copied from class: `PrivacyCriterion`
      If a privacy model provides a prosecutor risk threshold, it should override this method to enable optimizations
      Overrides:
        `getMinimalClassSize` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### getRequirements

          public int getRequirements()

      Description copied from class: `PrivacyCriterion`
      Returns the criterion's requirements.
      Overrides:
        `getRequirements` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### getRiskThresholdJournalist

          public double getRiskThresholdJournalist()

      Description copied from class: `PrivacyCriterion`
      Return journalist risk threshold, 1 if there is none
      Overrides:
        `getRiskThresholdJournalist` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### getRiskThresholdMarketer

          public double getRiskThresholdMarketer()

      Description copied from class: `PrivacyCriterion`
      Return marketer risk threshold, 1 if there is none
      Overrides:
        `getRiskThresholdMarketer` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### getRiskThresholdProsecutor

          public double getRiskThresholdProsecutor()

      Description copied from class: `PrivacyCriterion`
      Return prosecutor risk threshold, 1 if there is none
      Overrides:
        `getRiskThresholdProsecutor` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### isAnonymous

          public boolean isAnonymous(org.deidentifier.arx.framework.lattice.Transformation node,
                            org.deidentifier.arx.framework.check.groupify.HashGroupifyEntry entry)

      Description copied from class: `PrivacyCriterion`
      Implement this, to enforce the criterion.
      Overrides:
        `isAnonymous` in class `ProfitabilityProsecutorNoAttack`
      Parameters:
        `node` - TODO
      Returns:

    - #### isLocalRecodingSupported

          public boolean isLocalRecodingSupported()

      Description copied from class: `PrivacyCriterion`
      Returns whether the criterion supports local recoding.
      Overrides:
        `isLocalRecodingSupported` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### isMinimalClassSizeAvailable

          public boolean isMinimalClassSizeAvailable()

      Description copied from class: `PrivacyCriterion`
      If a privacy model provides a prosecutor risk threshold, it should override this method to enable optimizations
      Overrides:
        `isMinimalClassSizeAvailable` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### isSubsetAvailable

          public boolean isSubsetAvailable()

      Description copied from class: `PrivacyCriterion`
      If a privacy model uses a data subset, it must overwrite this method
      Overrides:
        `isSubsetAvailable` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### render

          public ElementData render()

      Description copied from class: `PrivacyCriterion`
      Renders the privacy model
      Overrides:
        `render` in class `ProfitabilityProsecutorNoAttack`
      Returns:

    - #### toString

          public java.lang.String toString()

      Description copied from class: `PrivacyCriterion`
      Returns a string representation.
      Overrides:
        `toString` in class `ProfitabilityProsecutorNoAttack`