sideeffectsdocumenter's People
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.