Git Product home page Git Product logo

sideeffectsdocumenter's People

Contributors

sawirth avatar

Watchers

James Cloos avatar  avatar

sideeffectsdocumenter's Issues

Bestehende Dokumentation nicht überschreiben

Besitzt eine Methode bereits einen JavaDoc-Comment, darf dieser nicht einfach überschrieben werden, sondern das Resultat der Dokumentation muss mit dem bestehenden Kommentar kombiniert werden, so dass keine Informationen verloren gehen.

AK

  • Bestehende JavaDocs werden nicht überschrieben sondern integriert

StaticModifier

Beschreibung
Eine Methode verändert ein statisches Feld der eigenen oder einer anderen Klasse

Akzeptanzkriterien

  • Funktion wird mit "Impure: StaticModifier" gekennzeichnet
  • In der erweiterten Beschreibung steht, welches statische Feld verändert wird

Bestehende Dokumentation erkennen und anpassen

Besitzt eine Methode bereits eine Dokumentation aus dem SideEffectsDocumenter, so soll nicht nochmals ein zusätzliche Dokumentation gemacht werden sondern die bestehende überschrieben werden. Erkennung am besten per RegEx.

AK

  • Bestehende Purity-Dokumentation überschreiben statt Info zu duplizieren

Deserialisierung des Purano-Results

Die Resultate aus Purano werden als JSON serialisiert und müssen nun im SideEffects-Documenter wieder für die spätere Verwendung deserialisiert werden. Dazu wird dem Programm das JSON-File übergeben.

Einlesen der .java-Files anhand eines Package-Names

Beschreibung
Die zu modifizierenden .java-Files müssen vom Programm eingelesen werden, damit die JavaDocs generiert werden können. Dazu wird die Library "JavaParser" verwendet. Dem Programm wird dazu ein Root-Folder mitgegeben sowie ein Package-Name, welcher (im Idealfall) der gleiche ist, der auch schon Purano übergeben wurde.

Akzeptanzkriterien

  • Files werden eingelesen und in Objekte von JavaParser gewandelt
  • Allenfalls ein Batching, damit nicht alle Files zu Beginn in den Speicher geladen werden, was möglicherweise bei grossen Projekten zu Problemen führen könnte

Absturz beim Parsen mittels JavaParser führt zu einem Abbruch

Wenn der JavaParser eine Exception wirft, bricht dies das Parsen komplett ab. Besser wäre es, wenn dieses File einfach übersprungen wird.
Aufgefallen ist es, weil ein Ordner ein module-info File enthielt, welche auch .java-Files sind aber vom JavaParser nicht geparsed werden können.

Stateless: Abhängigkeit auf Argumente

Beschreibung
Der Return-Wert einer Funktion hängt nur von den an die Funktion übergebenen Parameter ab. Dabei darf nicht direkt auf Fields zugegriffen werden, nur über Getter.

Akzeptanzkriterien

  • Funktion wird mit "Stateless" gekennzeichnet
  • In der erweiterten Beschreibung, wird angegeben, von was der Return-Wert abhängig ist

FieldModifier

Beschreibung
Verändert eine Funktion ein Field der eigenen Klasse, gilt das als Impure und muss angegeben werden.

Akzeptanzkriterien

  • Funktion wird als "Impure: FieldModifier" gekennzeichnet
  • In der erweiterten Beschreibung wird erwähnt, welches Feld verändert wird

Stateful: Abhängigkeit auf Felder

Beschreibung
Der Return-Wert hängt (nebst Parameter) auch von Fields ab, die von der Klasse selber sein können aber auch von Objekten, die entweder als Parameter übergeben werden und direkt darauf zugegriffen wird.

Akzeptanzkriterien

  • Funktion wird mit "Stateful" gekennzeichnet
  • In der erweiterten Beschreibung steht, wovon der Return-Wert genau abhängig ist

ArgumentModifier

Beschreibung
Eine Funktion modifiziert den State eines Objektes, das als Parameter übergeben wird, entweder indem direkt auf ein Field zugegriffen wird oder über Setter.

Akzeptanzkriterien

  • Funktion wird als "Impure: ArgumentModifier" gekennzeichnet
  • In der erweiterten Beschreibung steht, was modifiziert wird

Benötigte Daten

  • Name des Arguments (inkl. Type)
  • Name der Methode, über welche das Argument verändert wird

Erkennung der passenden Purano-Daten für eine Klasse und Methode

Beschreibung
Bei der Analyse der .java-Files muss das dazu passene Resultat aus Purano identiziert werden
Einerseits muss die Klasse gefunden werden und danach die Infos zu den Methoden.

Akzeptanzkriterien

  • Das Programm findet die Repräsentation einer Klasse im Purano-Result
  • Das Programm findet die passende Repräsentation einer Methode (v.a. auch bei Overloading)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.