https://github.com/miho/vmf-tutorials
VMF Tutorials
https://github.com/miho/vmf-tutorials
Last synced: 9 months ago
JSON representation
VMF Tutorials
- Host: GitHub
- URL: https://github.com/miho/vmf-tutorials
- Owner: miho
- Created: 2018-07-15T22:23:21.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-03-10T15:09:35.000Z (almost 4 years ago)
- Last Synced: 2025-02-15T21:20:01.616Z (11 months ago)
- Language: Java
- Size: 607 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VMF-Tutorials [](https://twitter.com/intent/tweet?text=VMF:%20The%20new%20modeling%20framework%20for%20Java!&url=https://github.com/miho/VMF&via=mihosoft&hashtags=vmf,java,mdd,developers)

[](https://gitter.im/VMF_/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
This collection of tutorials gives an introduction to [VMF](https://github.com/miho/VMF) and its use in regular Java projects.
## Contents
- [Introduction](https://github.com/miho/VMF-Tutorials/blob/master/README.md#introduction)
- [Defining your first model](https://github.com/miho/VMF-Tutorials/blob/master/VMF-Tutorial-01/README.md)
- [Using the Change Notification API](https://github.com/miho/VMF-Tutorials/blob/master/VMF-Tutorial-02/README.md)
- [Containment References](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-03/README.md)
- [Cross References](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-03b/README.md)
- [Undo/Redo API](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-04/README.md)
- [Using the Builder API](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-05/README.md)
- [Object Graph Traversal and Custom Property Order](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-06/README.md)
- [Immutable Objects & ReadOnly API](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-07/README.md)
- [Custom Behavior & Delegation](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-08/README.md)
- [Custom Default Values for Properties](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-09/README.md)
- [Equals & HashCode](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-10/README.md)
- [Annotations](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-11/README.md)
- [Cloning (Deep Copy & Shallow Copy)](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-12/README.md)
- [The Reflection API](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-13/README.md)
- [Custom Model Documentation](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-14/README.md)
- [External Types](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-15/README.md)
- [Maven Plugin](https://github.com/miho/VMF-Tutorials/tree/master/VMF-Tutorial-16/README.md)
## Introduction
[VMF](https://github.com/miho/VMF) is a lightweight modeling framework for the Java platform. It generates/supports:
- getters and setters
- default values
- containment
- cross refrences
- builder API
- equals() and hashCode()
- deep and shallow cloning
- change notification
- undo/redo
- object graph traversal API via iterators and streams
- immutable types and read-only wrappers
- delegation
- annotations
- reflection
- ...
A [VMF](https://github.com/miho/VMF) model consists of annotated Java interfaces. We could call this "wannabe" code. We just specify the interface and its properties and get a rich implementation that implements the property setters and getters, builders and much more. Even for a simple model [VMF](https://github.com/miho/VMF) generated a lot of useful API:

VMF integrates well into manual Java implementations. It comes with a Gradle plugin which means that using VMF is very simple. The tutorials will walk you through all major aspects of [VMF](https://github.com/miho/VMF).
Continue with the [FIRST TUTORIAL](https://github.com/miho/VMF-Tutorials/blob/master/VMF-Tutorial-01/README.md).