Skip to content
Snippets Groups Projects
Select Git revision
  • 62c23f47d8cc3f40d9476d74b0e5491df8299d67
  • master default
  • renovate/junit-jupiter-engine.version
  • renovate/selenium.version
  • renovate/testcontainer.version
  • demo
  • v1_8_1
  • v2.18.1
  • v2.18.0
  • v2.17.2
  • v2.17.1
  • v2.17.0
  • v2.16.1
  • v2.16.0
  • v2.15.1
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • testPipeline2
  • v2.7.0
27 results

settingsContainer.ftl

Blame
  • PropertiesSettingsHandler.scala 1.22 KiB
    package de.tobias.playpad.server.settings
    
    import java.io.IOException
    import java.lang.reflect.Modifier
    import java.nio.file.{Files, Path}
    import java.util.Properties
    
    /**
     * Created by tobias on 05.02.17.
     */
    class PropertiesSettingsHandler extends SettingsLoader with SettingsSaver {
    
    	@throws[IOException]
    	override def load(path: Path): Settings = {
    		val properties = new Properties()
    		properties.load(Files.newBufferedReader(path))
    
    		val settings = new Settings()
    		classOf[Settings].getDeclaredFields
    			.filter(f => !Modifier.isTransient(f.getModifiers))
    			.filter(f => properties.containsKey(f.getName))
    			.foreach(f => {
    				f.setAccessible(true)
    				if (f.getType == Integer.TYPE) {
    					f.setInt(settings, properties.getProperty(f.getName).toInt)
    				} else {
    					f.set(settings, properties.getProperty(f.getName))
    				}
    			})
    		settings
    	}
    
    	@throws[IOException]
    	override def save(settings: Settings, path: Path): Unit = {
    		val properties = new Properties()
    
    		classOf[Settings].getDeclaredFields
    			.filter(f => !Modifier.isTransient(f.getModifiers))
    			.foreach(f => {
    				f.setAccessible(true)
    				properties.setProperty(f.getName, f.get(settings).toString)
    			})
    
    		properties.store(Files.newOutputStream(path), "Settings")
    	}
    }