| /* |
| * Copyright 2017-present Open Networking Foundation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.onosproject.drivers.polatis.netconf; |
| |
| import com.google.common.collect.ImmutableList; |
| |
| import org.osgi.service.component.annotations.Activate; |
| import org.osgi.service.component.annotations.Component; |
| import org.osgi.service.component.annotations.Deactivate; |
| import org.osgi.service.component.annotations.Reference; |
| import org.osgi.service.component.annotations.ReferenceCardinality; |
| import org.onosproject.net.driver.AbstractDriverLoader; |
| import org.onosproject.net.optical.OpticalDevice; |
| import org.onosproject.ui.UiGlyph; |
| import org.onosproject.ui.UiGlyphFactory; |
| import org.onosproject.ui.UiExtensionService; |
| |
| /** |
| * Loader for Polatis device drivers. |
| */ |
| @Component(immediate = true) |
| public class PolatisDriversLoader extends AbstractDriverLoader { |
| |
| // OSGI: help bundle plugin discover runtime package dependency. |
| @SuppressWarnings("unused") |
| private OpticalDevice optical; |
| |
| @Reference(cardinality = ReferenceCardinality.MANDATORY) |
| protected UiExtensionService uiExtensionService; |
| |
| private UiGlyphFactory glyphFactory = |
| () -> ImmutableList.of( |
| new UiGlyph("policon", "0 0 64 64", |
| "M 32.024746,2 30.163615,19.069136 24.258784,3.015638 " |
| + "26.879599,19.985033 17.021343,6.007051 23.943688,21.71947 " |
| + "10.8045,10.769161 21.557349,24.15439 6.031794,16.978659 " |
| + "19.883076,27.1245 3.027943,24.21114 19.033986,30.42674 " |
| + "2,31.97526 19.069136,33.83639 3.015638,39.74122 " |
| + "19.985033,37.12041 6.007051,46.97866 21.719466,40.05632 " |
| + "10.769161,53.19551 24.154391,42.44265 16.978659,57.96822 " |
| + "27.124504,44.11693 24.21114,60.97206 30.426738,44.96602 " |
| + "31.975259,62 33.83639,44.93086 39.74122,60.98437 " |
| + "37.120405,44.01497 46.978663,57.99296 40.056317,42.28054 " |
| + "53.195507,53.23084 42.442656,39.84561 57.968215,47.02135 " |
| + "44.116927,36.8755 60.972063,39.78886 44.966018,33.57327 " |
| + "62,32.02475 44.930865,30.16362 60.984369,24.25878 " |
| + "44.014972,26.8796 57.992959,17.021342 42.280539,23.94369 " |
| + "53.23084,10.8045 39.845614,21.55735 47.021349,6.031794 " |
| + "36.875501,19.883076 39.788865,3.027943 33.573267,19.033986 Z " |
| + "m -0.05497,19.23081 A 10.768943,10.768943 0 0 1 " |
| + "42.769201,31.96977 10.768943,10.768943 0 0 1 " |
| + "32.030235,42.7692 10.768943,10.768943 0 0 1 " |
| + "21.230812,32.03023 10.768943,10.768943 0 0 1 " |
| + "31.969778,21.23081 Z") |
| ); |
| |
| public PolatisDriversLoader() { |
| super("/polatis-drivers.xml"); |
| } |
| |
| @Activate |
| @Override |
| protected void activate() { |
| uiExtensionService.register(glyphFactory); |
| super.activate(); |
| } |
| |
| @Deactivate |
| @Override |
| protected void deactivate() { |
| uiExtensionService.unregister(glyphFactory); |
| super.deactivate(); |
| } |
| } |